From e38be0dbf5816338ff97e2ee2f9adfff2902dc2b Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 14 Feb 2026 15:13:09 +0100 Subject: refactor(wgsl): modularize common shader functions Extracted common WGSL functions into separate files in `common/shaders/` to improve reusability and maintainability. - Created `common/shaders/render/fullscreen_vs.wgsl` for a reusable fullscreen vertex shader. - Created `common/shaders/math/color.wgsl` for color conversion and tone mapping functions. - Created `common/shaders/math/utils.wgsl` for general math utilities. - Created `common/shaders/render/raymarching.wgsl` for SDF raymarching logic. - Updated multiple shaders to use these new common snippets via `#include`. - Fixed the shader asset validation test to correctly handle shaders that include the common vertex shader. This refactoring makes the shader code more modular and easier to manage. --- src/gpu/post_process_helper.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/gpu/post_process_helper.cc') diff --git a/src/gpu/post_process_helper.cc b/src/gpu/post_process_helper.cc index 4ffa9c1..c5bef27 100644 --- a/src/gpu/post_process_helper.cc +++ b/src/gpu/post_process_helper.cc @@ -21,8 +21,10 @@ WGPURenderPipeline create_post_process_pipeline(WGPUDevice device, .uniform(PP_BINDING_EFFECT_PARAMS, WGPUShaderStage_Fragment) .build(device); + const std::string composed_shader = ShaderComposer::Get().Compose({}, shader_code); + WGPURenderPipeline pipeline = RenderPipelineBuilder(device) - .shader(shader_code) + .shader(composed_shader.c_str()) .bind_group_layout(bgl) .format(format) .build(); -- cgit v1.2.3