summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--wgpu/src/quad/gradient.rs4
-rw-r--r--wgpu/src/quad/solid.rs2
-rw-r--r--wgpu/src/shader/quad.wgsl8
-rw-r--r--wgpu/src/shader/vertex.wgsl7
4 files changed, 13 insertions, 8 deletions
diff --git a/wgpu/src/quad/gradient.rs b/wgpu/src/quad/gradient.rs
index ff30f78f..60b170cc 100644
--- a/wgpu/src/quad/gradient.rs
+++ b/wgpu/src/quad/gradient.rs
@@ -83,6 +83,8 @@ impl Pipeline {
concat!(
include_str!("../shader/quad.wgsl"),
"\n",
+ include_str!("../shader/vertex.wgsl"),
+ "\n",
include_str!("../shader/quad/gradient.wgsl"),
"\n",
include_str!("../shader/color/oklab.wgsl")
@@ -91,6 +93,8 @@ impl Pipeline {
concat!(
include_str!("../shader/quad.wgsl"),
"\n",
+ include_str!("../shader/vertex.wgsl"),
+ "\n",
include_str!("../shader/quad/gradient.wgsl"),
"\n",
include_str!("../shader/color/linear_rgb.wgsl")
diff --git a/wgpu/src/quad/solid.rs b/wgpu/src/quad/solid.rs
index 96e73ba8..90e7f98e 100644
--- a/wgpu/src/quad/solid.rs
+++ b/wgpu/src/quad/solid.rs
@@ -75,6 +75,8 @@ impl Pipeline {
concat!(
include_str!("../shader/quad.wgsl"),
"\n",
+ include_str!("../shader/vertex.wgsl"),
+ "\n",
include_str!("../shader/quad/solid.wgsl"),
),
)),
diff --git a/wgpu/src/shader/quad.wgsl b/wgpu/src/shader/quad.wgsl
index 555e81bb..f919cfe2 100644
--- a/wgpu/src/shader/quad.wgsl
+++ b/wgpu/src/shader/quad.wgsl
@@ -37,11 +37,3 @@ fn select_border_radius(radi: vec4<f32>, position: vec2<f32>, center: vec2<f32>)
rx = select(rx, ry, position.y > center.y);
return rx;
}
-
-// Compute the normalized quad coordinates based on the vertex index.
-fn vertex_position(vertex_index: u32) -> vec2<f32> {
- // #: 0 1 2 3 4 5
- // x: 1 1 0 0 0 1
- // y: 1 0 0 0 1 1
- return vec2<f32>((vec2(1u, 2u) + vertex_index) % 6u < 3u);
-}
diff --git a/wgpu/src/shader/vertex.wgsl b/wgpu/src/shader/vertex.wgsl
new file mode 100644
index 00000000..904f8470
--- /dev/null
+++ b/wgpu/src/shader/vertex.wgsl
@@ -0,0 +1,7 @@
+// Compute the normalized quad coordinates based on the vertex index.
+fn vertex_position(vertex_index: u32) -> vec2<f32> {
+ // #: 0 1 2 3 4 5
+ // x: 1 1 0 0 0 1
+ // y: 1 0 0 0 1 1
+ return vec2<f32>((vec2(1u, 2u) + vertex_index) % 6u < 3u);
+}