diff options
author | metamuffin <metamuffin@disroot.org> | 2025-05-05 15:09:54 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-05-05 15:09:54 +0200 |
commit | 306f96164784a8cbf405e72fa4364d6523366e95 (patch) | |
tree | 51717fc139871baa438aad806f4923669ae0896c /old/vgcodec/src/paint.wgsl | |
parent | 9cc089e2d6e841879e430b01d2f3d92c8820523e (diff) | |
download | video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.bz2 video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.zst |
old dir
Diffstat (limited to 'old/vgcodec/src/paint.wgsl')
-rw-r--r-- | old/vgcodec/src/paint.wgsl | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/old/vgcodec/src/paint.wgsl b/old/vgcodec/src/paint.wgsl new file mode 100644 index 0000000..7006310 --- /dev/null +++ b/old/vgcodec/src/paint.wgsl @@ -0,0 +1,22 @@ +struct Uniforms { + x: f32, + y: f32, + rx: f32, + ry: f32, + r: f32, + g: f32, + b: f32 +}; + +@group(0) @binding(0) var tex: texture_storage_2d<rgba8unorm, write>; +@group(0) @binding(1) var<uniform> uniforms: Uniforms; + +@compute @workgroup_size(1) +fn main(@builtin(global_invocation_id) global_id: vec3<u32>) { + let coords = global_id.xy; + let kc = vec2<f32>(coords) - vec2(uniforms.x, uniforms.y); + let d = length(kc / vec2(uniforms.rx, uniforms.ry)); + if d < 1.0 { + textureStore(tex, vec2<i32>(coords), vec4<f32>(vec3<f32>(uniforms.r, uniforms.g, uniforms.b), 1.0)); + } +} |