diff options
author | metamuffin <metamuffin@disroot.org> | 2022-11-21 16:59:50 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-11-21 16:59:50 +0100 |
commit | 5248831232fa22a1f3d6515f7f6c7bee8994faf2 (patch) | |
tree | fdbff884248948d124ab864e21d65fe49c6ca0e2 /vgcodec/src/paint.wgsl | |
download | video-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.wgsl | 19 |
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)); + } +} |