summaryrefslogtreecommitdiffstats
path: root/wgpu
diff options
context:
space:
mode:
authorLibravatar Gigas002 <24297712+Gigas002@users.noreply.github.com>2024-03-24 11:13:45 +0900
committerLibravatar GitHub <noreply@github.com>2024-03-24 11:13:45 +0900
commit4334e63ba1dd88b367f3b7f2790b7869d11d12c0 (patch)
tree7a02d84426a54a5a5283f5ad101cc803442998fd /wgpu
parentf3a1c785b2743e9c48c3d28df0c6772ce579d7c8 (diff)
parent3013463baa71504488a20436beb3db87ecb66df0 (diff)
downloadiced-4334e63ba1dd88b367f3b7f2790b7869d11d12c0.tar.gz
iced-4334e63ba1dd88b367f3b7f2790b7869d11d12c0.tar.bz2
iced-4334e63ba1dd88b367f3b7f2790b7869d11d12c0.zip
Merge branch 'iced-rs:master' into viewer_content_fit
Diffstat (limited to '')
-rw-r--r--wgpu/src/image.rs12
-rw-r--r--wgpu/src/window/compositor.rs4
2 files changed, 14 insertions, 2 deletions
diff --git a/wgpu/src/image.rs b/wgpu/src/image.rs
index c8e4a4c2..067b77ab 100644
--- a/wgpu/src/image.rs
+++ b/wgpu/src/image.rs
@@ -161,13 +161,21 @@ impl Data {
queue: &wgpu::Queue,
instances: &[Instance],
) {
+ self.instance_count = instances.len();
+
+ if self.instance_count == 0 {
+ return;
+ }
+
let _ = self.instances.resize(device, instances.len());
let _ = self.instances.write(queue, 0, instances);
-
- self.instance_count = instances.len();
}
fn render<'a>(&'a self, render_pass: &mut wgpu::RenderPass<'a>) {
+ if self.instance_count == 0 {
+ return;
+ }
+
render_pass.set_bind_group(0, &self.constants, &[]);
render_pass.set_vertex_buffer(0, self.instances.slice(..));
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs
index 328ad781..fa6b9373 100644
--- a/wgpu/src/window/compositor.rs
+++ b/wgpu/src/window/compositor.rs
@@ -92,6 +92,10 @@ impl Compositor {
.contains(&wgpu::CompositeAlphaMode::PostMultiplied)
{
wgpu::CompositeAlphaMode::PostMultiplied
+ } else if alpha_modes
+ .contains(&wgpu::CompositeAlphaMode::PreMultiplied)
+ {
+ wgpu::CompositeAlphaMode::PreMultiplied
} else {
wgpu::CompositeAlphaMode::Auto
};