diff options
author | 2022-11-28 20:29:01 +0100 | |
---|---|---|
committer | 2022-11-28 20:29:01 +0100 | |
commit | 8d67e21d48dcefbbb675cfad07849607ce0fe1b7 (patch) | |
tree | 58072c44539d4b7009fff3defe97834438234b1b /wgpu/src/shader | |
parent | 457d0560caf91884b148422e1ace3d64a38e0e33 (diff) | |
parent | bb2bf063b472396d44f9f3114a87ba79dfd5f62e (diff) | |
download | iced-8d67e21d48dcefbbb675cfad07849607ce0fe1b7.tar.gz iced-8d67e21d48dcefbbb675cfad07849607ce0fe1b7.tar.bz2 iced-8d67e21d48dcefbbb675cfad07849607ce0fe1b7.zip |
Merge pull request #1538 from iced-rs/group-solid-triangles
Group all solid triangles independently of color
Diffstat (limited to 'wgpu/src/shader')
-rw-r--r-- | wgpu/src/shader/solid.wgsl | 29 | ||||
-rw-r--r-- | wgpu/src/shader/triangle.wgsl | 30 |
2 files changed, 21 insertions, 38 deletions
diff --git a/wgpu/src/shader/solid.wgsl b/wgpu/src/shader/solid.wgsl index 68a8fea3..b24402f8 100644 --- a/wgpu/src/shader/solid.wgsl +++ b/wgpu/src/shader/solid.wgsl @@ -1,17 +1,30 @@ -struct Uniforms { +struct Globals { transform: mat4x4<f32>, - color: vec4<f32> } -@group(0) @binding(0) -var<uniform> uniforms: Uniforms; +@group(0) @binding(0) var<uniform> globals: Globals; + +struct VertexInput { + @location(0) position: vec2<f32>, + @location(1) color: vec4<f32>, +} + +struct VertexOutput { + @builtin(position) position: vec4<f32>, + @location(0) color: vec4<f32>, +} @vertex -fn vs_main(@location(0) input: vec2<f32>) -> @builtin(position) vec4<f32> { - return uniforms.transform * vec4<f32>(input.xy, 0.0, 1.0); +fn vs_main(input: VertexInput) -> VertexOutput { + var out: VertexOutput; + + out.color = input.color; + out.position = globals.transform * vec4<f32>(input.position, 0.0, 1.0); + + return out; } @fragment -fn fs_main() -> @location(0) vec4<f32> { - return uniforms.color; +fn fs_main(input: VertexOutput) -> @location(0) vec4<f32> { + return input.color; } diff --git a/wgpu/src/shader/triangle.wgsl b/wgpu/src/shader/triangle.wgsl deleted file mode 100644 index b24402f8..00000000 --- a/wgpu/src/shader/triangle.wgsl +++ /dev/null @@ -1,30 +0,0 @@ -struct Globals { - transform: mat4x4<f32>, -} - -@group(0) @binding(0) var<uniform> globals: Globals; - -struct VertexInput { - @location(0) position: vec2<f32>, - @location(1) color: vec4<f32>, -} - -struct VertexOutput { - @builtin(position) position: vec4<f32>, - @location(0) color: vec4<f32>, -} - -@vertex -fn vs_main(input: VertexInput) -> VertexOutput { - var out: VertexOutput; - - out.color = input.color; - out.position = globals.transform * vec4<f32>(input.position, 0.0, 1.0); - - return out; -} - -@fragment -fn fs_main(input: VertexOutput) -> @location(0) vec4<f32> { - return input.color; -} |