From de9bc553ed0e8bda42057ac441936c20a8185f60 Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 21 Feb 2026 09:44:17 +0100 Subject: refactor(wgsl): Use vec*f alias for vector types Replaces all instances of `vec` with the more concise `vec*f` alias (e.g., `vec3f`) across all `.wgsl` shaders. This improves readability and aligns with common graphics programming conventions. Also adds a new coding style rule to `doc/CODING_STYLE.md` to enforce this standard going forward. Finally, this commit fixes a build error in `test_effect_base.cc` by replacing a call to the non-existent `wgpuDeviceTick` with `wgpuDevicePoll`, which resolves the test failure. --- workspaces/main/shaders/scene1.wgsl | 44 ++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'workspaces/main/shaders/scene1.wgsl') diff --git a/workspaces/main/shaders/scene1.wgsl b/workspaces/main/shaders/scene1.wgsl index 87949fa..8cc36cd 100644 --- a/workspaces/main/shaders/scene1.wgsl +++ b/workspaces/main/shaders/scene1.wgsl @@ -12,23 +12,23 @@ @group(0) @binding(2) var uniforms: UniformsSequenceParams; @group(0) @binding(3) var camera: CameraParams; -const skyCol = vec3(0.176, 0.235, 0.25); -const skylineCol = vec3(0.5, 0.125, 0.025); -const sunCol = vec3(0.5, 0.163, 0.025); -const diffCol1 = vec3(0.4, 1.0, 1.0); -const diffCol2 = vec3(0.325, 1.0, 0.975); +const skyCol = vec3f(0.176, 0.235, 0.25); +const skylineCol = vec3f(0.5, 0.125, 0.025); +const sunCol = vec3f(0.5, 0.163, 0.025); +const diffCol1 = vec3f(0.4, 1.0, 1.0); +const diffCol2 = vec3f(0.325, 1.0, 0.975); // Lighting (normalized manually) -const sunDir1 = vec3(0.0, 0.04997, -0.99875); // normalize(0, 0.05, -1) -const lightPos1 = vec3(10.0, 10.0, 10.0); -const lightPos2 = vec3(-10.0, 10.0, -10.0); +const sunDir1 = vec3f(0.0, 0.04997, -0.99875); // normalize(0, 0.05, -1) +const lightPos1 = vec3f(10.0, 10.0, 10.0); +const lightPos2 = vec3f(-10.0, 10.0, -10.0); fn rayPlane(ray: Ray, plane: vec4) -> f32 { return (dot(ray.origin, plane.xyz) - plane.w) / dot(ray.direction, plane.xyz); } -fn render0(ray: Ray) -> vec3 { - var col = vec3(0.0); +fn render0(ray: Ray) -> vec3f { + var col = vec3f(0.0); let y = abs(ray.direction.y); let sf = 1.0001 - max(dot(sunDir1, ray.direction), 0.0); col += skyCol * pow(y, 8.0); @@ -41,11 +41,11 @@ fn render0(ray: Ray) -> vec3 { let pos = ray.origin + tp1 * ray.direction; let pp = pos.xz; let db = sdBox2D(pp, vec2(5.0, 9.0)) - 3.0; - col += vec3(4.0) * skyCol * y * y * smoothstep(0.25, 0.0, db); - col += vec3(0.8) * skyCol * exp(-0.5 * max(db, 0.0)); + col += vec3f(4.0) * skyCol * y * y * smoothstep(0.25, 0.0, db); + col += vec3f(0.8) * skyCol * exp(-0.5 * max(db, 0.0)); } */ - return clamp(col, vec3(0.0), vec3(10.0)); + return clamp(col, vec3f(0.0), vec3f(10.0)); } const OBJ_BACKGROUND: f32 = 0.0; @@ -54,17 +54,17 @@ const OBJ_SPHERE: f32 = 2.0; const OBJ_PLANE: f32 = 3.0; // TODO: remove! (issue with #include macros) -fn df(p: vec3) -> f32 { +fn df(p: vec3f) -> f32 { return 0.; } -fn dfWithID(p: vec3) -> RayMarchResult { +fn dfWithID(p: vec3f) -> RayMarchResult { // Cube - var pc = p - vec3(-1.9, 0.0, 0.0); - let dCube = sdBox(pc, vec3(1.6)); + var pc = p - vec3f(-1.9, 0.0, 0.0); + let dCube = sdBox(pc, vec3f(1.6)); // Sphere - var ps = p - vec3(1.3, 0.0, 0.0); + var ps = p - vec3f(1.3, 0.0, 0.0); let dSphere = sdSphere(ps, 1.2); // Ground plane @@ -89,7 +89,7 @@ fn dfWithID(p: vec3) -> RayMarchResult { return result; } -fn boxCol(col: vec3, nsp: vec3, rd: vec3, nnor: vec3, nrcol: vec3, nshd1: f32, nshd2: f32) -> vec3 { +fn boxCol(col: vec3f, nsp: vec3f, rd: vec3f, nnor: vec3f, nrcol: vec3f, nshd1: f32, nshd2: f32) -> vec3f { var nfre = 1.0 + dot(rd, nnor); nfre *= nfre; @@ -102,17 +102,17 @@ fn boxCol(col: vec3, nsp: vec3, rd: vec3, nnor: vec3, nrcol: var ndif2 = max(dot(nld2, nnor), 0.0); ndif2 *= ndif2; - var scol = vec3(0.0); + var scol = vec3f(0.0); let rf = smoothstep(1.0, 0.9, nfre); scol += diffCol1 * ndif1 * nshd1; scol += diffCol2 * ndif2 * nshd2; scol += 0.1 * (skyCol + skylineCol); - scol += nrcol * 0.75 * mix(vec3(0.25), vec3(0.5, 0.5, 1.0), nfre); + scol += nrcol * 0.75 * mix(vec3f(0.25), vec3f(0.5, 0.5, 1.0), nfre); return mix(col, scol, rf * smoothstep(90.0, 20.0, dot(nsp, nsp))); } -fn render1(ray: Ray) -> vec3 { +fn render1(ray: Ray) -> vec3f { let skyCol_local = render0(ray); var col = skyCol_local; -- cgit v1.2.3