From 0127c747a41f972fd68e3e6e6b472859bfdb80dd Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 14 Feb 2026 15:26:55 +0100 Subject: refactor(wgsl): consolidate SDF shapes into single common file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge sdf_primitives.wgsl into math/sdf_shapes.wgsl to eliminate duplication and establish single source of truth for all SDF functions. Changes: - Delete common/shaders/sdf_primitives.wgsl (duplicate of math/sdf_shapes.wgsl) - Add sdBox2D() and sdEllipse() to math/sdf_shapes.wgsl - Update ellipse.wgsl (main/test) to use #include "math/sdf_shapes" - Update scene1.wgsl to use math/sdf_shapes instead of sdf_primitives - Rename asset SHADER_SDF_PRIMITIVES → SHADER_SDF_SHAPES - Update shader registration and tests Impact: - ~60 lines eliminated from ellipse shaders - Single source for 3D primitives (sphere, box, torus, plane) and 2D (box, ellipse) - Consistent include path across codebase All tests passing (34/34). handoff(Claude): SDF shapes consolidated to math/sdf_shapes.wgsl Co-Authored-By: Claude Sonnet 4.5 --- src/gpu/shaders.cc | 2 +- src/tests/gpu/test_shader_assets.cc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/gpu/shaders.cc b/src/gpu/shaders.cc index 60db655..1bf5604 100644 --- a/src/gpu/shaders.cc +++ b/src/gpu/shaders.cc @@ -45,7 +45,7 @@ void InitShaderComposer() { AssetId::ASSET_SHADER_RENDER_LIGHTING_UTILS); register_if_exists("render/mesh", AssetId::ASSET_SHADER_MESH); - register_if_exists("sdf_primitives", AssetId::ASSET_SHADER_SDF_PRIMITIVES); + register_if_exists("math/sdf_shapes", AssetId::ASSET_SHADER_SDF_SHAPES); register_if_exists("lighting", AssetId::ASSET_SHADER_LIGHTING); diff --git a/src/tests/gpu/test_shader_assets.cc b/src/tests/gpu/test_shader_assets.cc index 1736dc0..135c477 100644 --- a/src/tests/gpu/test_shader_assets.cc +++ b/src/tests/gpu/test_shader_assets.cc @@ -42,8 +42,8 @@ int main() { all_passed &= validate_shader(AssetId::ASSET_SHADER_COMMON_UNIFORMS, "COMMON_UNIFORMS", {"struct", "GlobalUniforms"}); - all_passed &= validate_shader(AssetId::ASSET_SHADER_SDF_PRIMITIVES, - "SDF_PRIMITIVES", {"fn", "sd"}); + all_passed &= validate_shader(AssetId::ASSET_SHADER_SDF_SHAPES, + "SDF_SHAPES", {"fn", "sd"}); all_passed &= validate_shader(AssetId::ASSET_SHADER_LIGHTING, "LIGHTING", {"fn", "calc"}); all_passed &= validate_shader(AssetId::ASSET_SHADER_RAY_BOX, "RAY_BOX", -- cgit v1.2.3