From f9a6efcaa03728f43aaa105af8936c1ed4778388 Mon Sep 17 00:00:00 2001 From: shan Date: Thu, 6 Oct 2022 19:41:00 -0700 Subject: Fixed some more imports/documentation. --- wgpu/src/buffers.rs | 2 +- wgpu/src/buffers/dynamic.rs | 6 ++++-- wgpu/src/shader/triangle_gradient.wgsl | 4 ++-- wgpu/src/shader/triangle_solid.wgsl | 1 - wgpu/src/triangle.rs | 4 ++-- wgpu/src/triangle/gradient.rs | 4 ++-- wgpu/src/triangle/solid.rs | 4 ++-- 7 files changed, 13 insertions(+), 12 deletions(-) (limited to 'wgpu/src') diff --git a/wgpu/src/buffers.rs b/wgpu/src/buffers.rs index 7a15692b..6b9f487c 100644 --- a/wgpu/src/buffers.rs +++ b/wgpu/src/buffers.rs @@ -88,7 +88,7 @@ impl StaticBuffer { let bytes = bytemuck::cast_slice(content); let bytes_size = bytes.len() as u64; - if let Some(buffer_size) = wgpu::BufferSize::new(bytes_size as u64) { + if let Some(buffer_size) = wgpu::BufferSize::new(bytes_size) { let mut buffer = staging_belt.write_buffer( encoder, &self.gpu, diff --git a/wgpu/src/buffers/dynamic.rs b/wgpu/src/buffers/dynamic.rs index 75cc202c..dc30c56f 100644 --- a/wgpu/src/buffers/dynamic.rs +++ b/wgpu/src/buffers/dynamic.rs @@ -50,6 +50,7 @@ impl DynamicBufferType { } } +/// A dynamic buffer is any type of buffer which does not have a static offset. pub(crate) struct DynamicBuffer { offsets: Vec, cpu: DynamicBufferType, @@ -124,13 +125,15 @@ impl DynamicBuffer { /// Write a new value to the CPU buffer with proper alignment. Stores the returned offset value /// in the buffer for future use. pub fn push(&mut self, value: &T) { - //this write operation on the buffer will adjust for uniform alignment requirements + //this write operation on the cpu buffer will adjust for uniform alignment requirements let offset = self.cpu.write(value); self.offsets.push(offset as u32); } /// Resize buffer contents if necessary. This will re-create the GPU buffer if current size is /// less than the newly computed size from the CPU buffer. + /// + /// If the gpu buffer is resized, its bind group will need to be recreated! pub fn resize(&mut self, device: &wgpu::Device) -> bool { let new_size = self.cpu.get_ref().len() as u64; @@ -144,7 +147,6 @@ impl DynamicBuffer { } }; - //Re-create the GPU buffer since it needs to be resized. self.gpu = DynamicBuffer::::create_gpu_buffer( device, self.label, usages, new_size, ); diff --git a/wgpu/src/shader/triangle_gradient.wgsl b/wgpu/src/shader/triangle_gradient.wgsl index 4efda260..03ba9d88 100644 --- a/wgpu/src/shader/triangle_gradient.wgsl +++ b/wgpu/src/shader/triangle_gradient.wgsl @@ -1,9 +1,8 @@ -// uniforms struct GradientUniforms { transform: mat4x4, //xy = start, wz = end position: vec4, - //x = start, y = end, zw = padding + //x = start stop, y = end stop, zw = padding stop_range: vec4, } @@ -32,6 +31,7 @@ fn vs_main(@location(0) input: vec2) -> VertexOutput { return output; } +//TODO: rewrite without branching @fragment fn fs_gradient(input: VertexOutput) -> @location(0) vec4 { let start = uniforms.position.xy; diff --git a/wgpu/src/shader/triangle_solid.wgsl b/wgpu/src/shader/triangle_solid.wgsl index be51ebb0..9eb2df24 100644 --- a/wgpu/src/shader/triangle_solid.wgsl +++ b/wgpu/src/shader/triangle_solid.wgsl @@ -1,4 +1,3 @@ -// uniforms struct SolidUniforms { transform: mat4x4, color: vec4 diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs index 791c9833..48ddf28a 100644 --- a/wgpu/src/triangle.rs +++ b/wgpu/src/triangle.rs @@ -12,9 +12,9 @@ use crate::triangle::solid::SolidPipeline; pub use iced_graphics::triangle::{Mesh2D, Vertex2D}; use layer::mesh; +mod solid; mod gradient; mod msaa; -mod solid; /// Triangle pipeline for all mesh layers in a [`iced_graphics::Canvas`] widget. #[derive(Debug)] @@ -60,7 +60,7 @@ impl TrianglePipelines { } impl Pipeline { - /// Creates supported GL programs, listed in [TrianglePipelines]. + /// Creates supported pipelines, listed in [TrianglePipelines]. pub fn new( device: &wgpu::Device, format: wgpu::TextureFormat, diff --git a/wgpu/src/triangle/gradient.rs b/wgpu/src/triangle/gradient.rs index 11c072ca..07551368 100644 --- a/wgpu/src/triangle/gradient.rs +++ b/wgpu/src/triangle/gradient.rs @@ -26,7 +26,7 @@ pub(super) struct GradientUniforms { transform: glam::Mat4, //xy = start, zw = end direction: Vec4, - //x = start, y = end, zw = padding + //x = start stop, y = end stop, zw = padding stop_range: IVec4, } @@ -55,7 +55,7 @@ impl GradientPipeline { ); //Note: with a WASM target storage buffers are not supported. Will need to use UBOs & static - // sized array (eg like the 64-sized array on OpenGL side right now) to make gradients work + // sized array (eg like the 32-sized array on OpenGL side right now) to make gradients work let storage_buffer = DynamicBuffer::storage( device, "iced_wgpu::triangle [GRADIENT] storage", diff --git a/wgpu/src/triangle/solid.rs b/wgpu/src/triangle/solid.rs index d2b4d13b..abba4851 100644 --- a/wgpu/src/triangle/solid.rs +++ b/wgpu/src/triangle/solid.rs @@ -10,13 +10,13 @@ use iced_graphics::Transformation; pub struct SolidPipeline { pipeline: wgpu::RenderPipeline, - pub(crate) buffer: DynamicBuffer, + pub(super) buffer: DynamicBuffer, bind_group_layout: wgpu::BindGroupLayout, bind_group: wgpu::BindGroup, } #[derive(Debug, Clone, Copy, ShaderType)] -pub struct SolidUniforms { +pub(super) struct SolidUniforms { transform: glam::Mat4, color: Vec4, } -- cgit