blob: f23e9038c594646d4a8c3d3f4a54cccb65ffa5aa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
struct Uniforms {
x: f32,
y: f32,
radius: 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;
if distance(vec2<f32>(coords), vec2(uniforms.x, uniforms.y)) < uniforms.radius {
textureStore(tex, vec2<i32>(coords), vec4<f32>(vec3<f32>(uniforms.r, uniforms.g, uniforms.b), 1.0));
}
}
|