summaryrefslogtreecommitdiffstats
path: root/wgpu/src/quad.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-05-30 01:33:50 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-05-30 01:33:50 +0200
commitef547469fdc8fe4faaa9902d9a8c920684f07189 (patch)
treeed4545b020a52219f97f6fced31a4bd67c47ec3f /wgpu/src/quad.rs
parent5fdc5affceca9345661ea2d213ccbce99721d09b (diff)
downloadiced-ef547469fdc8fe4faaa9902d9a8c920684f07189.tar.gz
iced-ef547469fdc8fe4faaa9902d9a8c920684f07189.tar.bz2
iced-ef547469fdc8fe4faaa9902d9a8c920684f07189.zip
Improve boundaries between `quad` submodules in `iced_wgpu`
Diffstat (limited to 'wgpu/src/quad.rs')
-rw-r--r--wgpu/src/quad.rs27
1 files changed, 10 insertions, 17 deletions
diff --git a/wgpu/src/quad.rs b/wgpu/src/quad.rs
index deb6d59a..9c5ed05f 100644
--- a/wgpu/src/quad.rs
+++ b/wgpu/src/quad.rs
@@ -116,21 +116,23 @@ impl Pipeline {
for (kind, count) in &quads.order {
match kind {
Kind::Solid => {
- render_pass.set_pipeline(&self.solid.pipeline);
- layer.solid.draw(
- &layer.constants,
+ self.solid.render(
render_pass,
+ &layer.constants,
+ &layer.solid,
solid_offset..(solid_offset + count),
);
+
solid_offset += count;
}
Kind::Gradient => {
- render_pass.set_pipeline(&self.gradient.pipeline);
- layer.gradient.draw(
- &layer.constants,
+ self.gradient.render(
render_pass,
+ &layer.constants,
+ &layer.gradient,
gradient_offset..(gradient_offset + count),
);
+
gradient_offset += count;
}
}
@@ -199,17 +201,8 @@ impl Layer {
bytemuck::bytes_of(&uniforms),
);
- let _ = self.solid.instances.resize(device, quads.solids.len());
- let _ = self
- .gradient
- .instances
- .resize(device, quads.gradients.len());
-
- let _ = self.solid.instances.write(queue, 0, &quads.solids);
- let _ = self.gradient.instances.write(queue, 0, &quads.gradients);
-
- self.solid.instance_count = quads.solids.len();
- self.gradient.instance_count = quads.gradients.len();
+ self.solid.prepare(device, queue, &quads.solids);
+ self.gradient.prepare(device, queue, &quads.gradients);
}
}