aboutsummaryrefslogtreecommitdiff
path: root/vgcodec/src/paint.wgsl
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-11-21 22:09:42 +0100
committermetamuffin <metamuffin@disroot.org>2022-11-21 22:09:42 +0100
commit83bc23206ad0982fcf2bf6c8e7256190dbe148f0 (patch)
tree2b18b1648f31b26c31d7b1678f67732e3f5b9607 /vgcodec/src/paint.wgsl
parent11a57882861f9811cb1624d76a2b08ffb7d47b9c (diff)
downloadvideo-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.wgsl7
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));
}
}