summaryrefslogtreecommitdiff
path: root/workspaces/main
diff options
context:
space:
mode:
Diffstat (limited to 'workspaces/main')
-rw-r--r--workspaces/main/shaders/circle_mask_compute.wgsl12
-rw-r--r--workspaces/main/shaders/circle_mask_render.wgsl11
-rw-r--r--workspaces/main/shaders/ellipse.wgsl10
-rw-r--r--workspaces/main/shaders/gaussian_blur.wgsl11
4 files changed, 6 insertions, 38 deletions
diff --git a/workspaces/main/shaders/circle_mask_compute.wgsl b/workspaces/main/shaders/circle_mask_compute.wgsl
index 484d3dd..b167781 100644
--- a/workspaces/main/shaders/circle_mask_compute.wgsl
+++ b/workspaces/main/shaders/circle_mask_compute.wgsl
@@ -2,6 +2,8 @@
// Generates a circular mask (1.0 inside, 0.0 outside)
#include "common_uniforms"
+#include "render/fullscreen_vs"
+
struct CircleMaskParams {
radius: f32,
_pad0: f32,
@@ -12,16 +14,6 @@ struct CircleMaskParams {
@group(0) @binding(0) var<uniform> uniforms: CommonUniforms;
@group(0) @binding(1) var<uniform> params: CircleMaskParams;
-struct VSOutput {
- @builtin(position) position: vec4<f32>,
-};
-
-@vertex fn vs_main(@builtin(vertex_index) i: u32) -> VSOutput {
- var pos = array<vec2<f32>, 3>(
- vec2<f32>(-1, -1), vec2<f32>(3, -1), vec2<f32>(-1, 3));
- return VSOutput(vec4<f32>(pos[i], 0.0, 1.0));
-}
-
@fragment fn fs_main(@builtin(position) p: vec4<f32>) -> @location(0) vec4<f32> {
let uv = p.xy / uniforms.resolution;
let center = vec2<f32>(0.5, 0.5);
diff --git a/workspaces/main/shaders/circle_mask_render.wgsl b/workspaces/main/shaders/circle_mask_render.wgsl
index cfa002e..55620c1 100644
--- a/workspaces/main/shaders/circle_mask_render.wgsl
+++ b/workspaces/main/shaders/circle_mask_render.wgsl
@@ -5,19 +5,10 @@
@group(0) @binding(1) var mask_sampler: sampler;
#include "common_uniforms"
+#include "render/fullscreen_vs"
@group(0) @binding(2) var<uniform> uniforms: CommonUniforms;
-struct VSOutput {
- @builtin(position) position: vec4<f32>,
-};
-
-@vertex fn vs_main(@builtin(vertex_index) i: u32) -> VSOutput {
- var pos = array<vec2<f32>, 3>(
- vec2<f32>(-1, -1), vec2<f32>(3, -1), vec2<f32>(-1, 3));
- return VSOutput(vec4<f32>(pos[i], 0.0, 1.0));
-}
-
@fragment fn fs_main(@builtin(position) p: vec4<f32>) -> @location(0) vec4<f32> {
let uv = p.xy / uniforms.resolution;
let mask_value = textureSample(mask_tex, mask_sampler, uv).r;
diff --git a/workspaces/main/shaders/ellipse.wgsl b/workspaces/main/shaders/ellipse.wgsl
index 69b2712..07f0c9a 100644
--- a/workspaces/main/shaders/ellipse.wgsl
+++ b/workspaces/main/shaders/ellipse.wgsl
@@ -1,16 +1,8 @@
#include "common_uniforms"
+#include "render/fullscreen_vs"
@group(0) @binding(0) var<uniform> uniforms: CommonUniforms;
-@vertex fn vs_main(@builtin(vertex_index) i: u32) -> @builtin(position) vec4<f32> {
- var pos = array<vec2<f32>, 3>(
- vec2<f32>(-1.0, -1.0),
- vec2<f32>(3.0, -1.0),
- vec2<f32>(-1.0, 3.0)
- );
- return vec4<f32>(pos[i], 0.0, 1.0);
-}
-
fn sdEllipse(p: vec2<f32>, ab: vec2<f32>) -> f32 {
var p_abs = abs(p);
if (p_abs.x > p_abs.y) {
diff --git a/workspaces/main/shaders/gaussian_blur.wgsl b/workspaces/main/shaders/gaussian_blur.wgsl
index 02156f7..22e467f 100644
--- a/workspaces/main/shaders/gaussian_blur.wgsl
+++ b/workspaces/main/shaders/gaussian_blur.wgsl
@@ -2,6 +2,8 @@
@group(0) @binding(1) var txt: texture_2d<f32>;
#include "common_uniforms"
+#include "render/fullscreen_vs"
+
struct GaussianBlurParams {
strength: f32,
_pad: f32,
@@ -10,15 +12,6 @@ struct GaussianBlurParams {
@group(0) @binding(2) var<uniform> uniforms: CommonUniforms;
@group(0) @binding(3) var<uniform> params: GaussianBlurParams;
-@vertex fn vs_main(@builtin(vertex_index) i: u32) -> @builtin(position) vec4<f32> {
- var pos = array<vec2<f32>, 3>(
- vec2<f32>(-1, -1),
- vec2<f32>(3, -1),
- vec2<f32>(-1, 3)
- );
- return vec4<f32>(pos[i], 0.0, 1.0);
-}
-
@fragment fn fs_main(@builtin(position) p: vec4<f32>) -> @location(0) vec4<f32> {
let uv = p.xy / uniforms.resolution;
var res = vec4<f32>(0.0);