diff options
author | 2023-05-30 01:33:50 +0200 | |
---|---|---|
committer | 2023-05-30 01:33:50 +0200 | |
commit | ef547469fdc8fe4faaa9902d9a8c920684f07189 (patch) | |
tree | ed4545b020a52219f97f6fced31a4bd67c47ec3f /wgpu/src/quad.rs | |
parent | 5fdc5affceca9345661ea2d213ccbce99721d09b (diff) | |
download | iced-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.rs | 27 |
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); } } |