diff options
author | metamuffin <metamuffin@disroot.org> | 2022-11-21 22:09:42 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-11-21 22:09:42 +0100 |
commit | 83bc23206ad0982fcf2bf6c8e7256190dbe148f0 (patch) | |
tree | 2b18b1648f31b26c31d7b1678f67732e3f5b9607 /vgcodec/src/paint.wgsl | |
parent | 11a57882861f9811cb1624d76a2b08ffb7d47b9c (diff) | |
download | video-codec-experiments-83bc23206ad0982fcf2bf6c8e7256190dbe148f0.tar video-codec-experiments-83bc23206ad0982fcf2bf6c8e7256190dbe148f0.tar.bz2 video-codec-experiments-83bc23206ad0982fcf2bf6c8e7256190dbe148f0.tar.zst |
works
Diffstat (limited to 'vgcodec/src/paint.wgsl')
-rw-r--r-- | vgcodec/src/paint.wgsl | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/vgcodec/src/paint.wgsl b/vgcodec/src/paint.wgsl index f23e903..7006310 100644 --- a/vgcodec/src/paint.wgsl +++ b/vgcodec/src/paint.wgsl @@ -1,7 +1,8 @@ struct Uniforms { x: f32, y: f32, - radius: f32, + rx: f32, + ry: f32, r: f32, g: f32, b: f32 @@ -13,7 +14,9 @@ struct Uniforms { @compute @workgroup_size(1) fn main(@builtin(global_invocation_id) global_id: vec3<u32>) { let coords = global_id.xy; - if distance(vec2<f32>(coords), vec2(uniforms.x, uniforms.y)) < uniforms.radius { + 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)); } } |