aboutsummaryrefslogtreecommitdiff
path: root/vgcodec/src/paint.wgsl
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-11-21 16:59:50 +0100
committermetamuffin <metamuffin@disroot.org>2022-11-21 16:59:50 +0100
commit5248831232fa22a1f3d6515f7f6c7bee8994faf2 (patch)
treefdbff884248948d124ab864e21d65fe49c6ca0e2 /vgcodec/src/paint.wgsl
downloadvideo-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar
video-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar.bz2
video-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar.zst
unify repos
Diffstat (limited to 'vgcodec/src/paint.wgsl')
-rw-r--r--vgcodec/src/paint.wgsl19
1 files changed, 19 insertions, 0 deletions
diff --git a/vgcodec/src/paint.wgsl b/vgcodec/src/paint.wgsl
new file mode 100644
index 0000000..02acd8e
--- /dev/null
+++ b/vgcodec/src/paint.wgsl
@@ -0,0 +1,19 @@
+struct Uniforms {
+ x: f32,
+ y: f32,
+ radius: f32,
+ r: f32,
+ g: f32,
+ b: f32
+};
+
+@group(0) @binding(0) var<uniform> uniforms: Uniforms;
+@group(0) @binding(1) var tex: texture_storage_2d<rgba8unorm, write>;
+
+@compute @workgroup_size(1)
+fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
+ let coords = vec2<i32>(global_id.xy);
+ if distance(vec2<f32>(coords), vec2(uniforms.x, uniforms.y)) < uniforms.radius {
+ textureStore(tex, coords.xy, vec4<f32>(vec3<f32>(uniforms.r, uniforms.g, uniforms.b), 1.0));
+ }
+}