summaryrefslogtreecommitdiffstats
path: root/wgpu/src/shader/quad
diff options
context:
space:
mode:
authorLibravatar Jim Eckerlein <jim.eckerlein@icloud.com>2023-09-24 15:10:19 +0200
committerLibravatar Jim Eckerlein <jim.eckerlein@icloud.com>2023-09-24 15:10:19 +0200
commit3f467d121229142177ef1b2f417fe87c7bf7fdf2 (patch)
treef7c98f9009dca79b7d164801a8badb0fab1f7089 /wgpu/src/shader/quad
parentbc9bb28b1ccd1248d63ccdfef2f57d7aa837abbb (diff)
downloadiced-3f467d121229142177ef1b2f417fe87c7bf7fdf2.tar.gz
iced-3f467d121229142177ef1b2f417fe87c7bf7fdf2.tar.bz2
iced-3f467d121229142177ef1b2f417fe87c7bf7fdf2.zip
Compute vertex position in shader
Diffstat (limited to 'wgpu/src/shader/quad')
-rw-r--r--wgpu/src/shader/quad/gradient.wgsl4
-rw-r--r--wgpu/src/shader/quad/solid.wgsl4
2 files changed, 4 insertions, 4 deletions
diff --git a/wgpu/src/shader/quad/gradient.wgsl b/wgpu/src/shader/quad/gradient.wgsl
index 0754e97f..36cae61c 100644
--- a/wgpu/src/shader/quad/gradient.wgsl
+++ b/wgpu/src/shader/quad/gradient.wgsl
@@ -1,5 +1,5 @@
struct GradientVertexInput {
- @location(0) v_pos: vec2<f32>,
+ @builtin(vertex_index) vertex_index: u32,
@location(1) @interpolate(flat) colors_1: vec4<u32>,
@location(2) @interpolate(flat) colors_2: vec4<u32>,
@location(3) @interpolate(flat) colors_3: vec4<u32>,
@@ -48,7 +48,7 @@ fn gradient_vs_main(input: GradientVertexInput) -> GradientVertexOutput {
vec4<f32>(pos - vec2<f32>(0.5, 0.5), 0.0, 1.0)
);
- out.position = globals.transform * transform * vec4<f32>(input.v_pos, 0.0, 1.0);
+ out.position = globals.transform * transform * vec4<f32>(vertex_position(input.vertex_index), 0.0, 1.0);
out.colors_1 = input.colors_1;
out.colors_2 = input.colors_2;
out.colors_3 = input.colors_3;
diff --git a/wgpu/src/shader/quad/solid.wgsl b/wgpu/src/shader/quad/solid.wgsl
index ebd6d877..5fc5b13a 100644
--- a/wgpu/src/shader/quad/solid.wgsl
+++ b/wgpu/src/shader/quad/solid.wgsl
@@ -1,5 +1,5 @@
struct SolidVertexInput {
- @location(0) v_pos: vec2<f32>,
+ @builtin(vertex_index) vertex_index: u32,
@location(1) color: vec4<f32>,
@location(2) pos: vec2<f32>,
@location(3) scale: vec2<f32>,
@@ -40,7 +40,7 @@ fn solid_vs_main(input: SolidVertexInput) -> SolidVertexOutput {
vec4<f32>(pos - vec2<f32>(0.5, 0.5), 0.0, 1.0)
);
- out.position = globals.transform * transform * vec4<f32>(input.v_pos, 0.0, 1.0);
+ out.position = globals.transform * transform * vec4<f32>(vertex_position(input.vertex_index), 0.0, 1.0);
out.color = input.color;
out.border_color = input.border_color;
out.pos = pos;