From bf46e44e1cb6027a072819a2a3aa3be32651f6e1 Mon Sep 17 00:00:00 2001 From: skal Date: Tue, 3 Feb 2026 18:44:41 +0100 Subject: refactor: Task #20 - Platform & Code Hygiene - Consolidated all WebGPU shims and platform-specific logic into src/platform.h. - Refactored platform_init to return PlatformState by value and platform_poll to automatically refresh time and aspect_ratio. - Removed STL dependencies (std::map, std::vector, std::string) from AssetManager and Procedural subsystems. - Fixed Windows cross-compilation by adjusting include paths and linker flags in CMakeLists.txt and updating build_win.sh. - Removed redundant direct inclusions of GLFW/glfw3.h and WebGPU headers across the project. - Applied clang-format and updated documentation. handoff(Gemini): Completed Task #20 and 20.1. Platform abstraction is now unified, and core paths are STL-free. Windows build is stable. --- src/gpu/effects/post_process_helper.h | 1 - src/gpu/effects/shaders.cc | 36 +++++++---------------------------- 2 files changed, 7 insertions(+), 30 deletions(-) (limited to 'src/gpu/effects') diff --git a/src/gpu/effects/post_process_helper.h b/src/gpu/effects/post_process_helper.h index d3a37bd..1986ff3 100644 --- a/src/gpu/effects/post_process_helper.h +++ b/src/gpu/effects/post_process_helper.h @@ -4,7 +4,6 @@ #pragma once #include "gpu/gpu.h" -#include // Helper to create a standard post-processing pipeline WGPURenderPipeline create_post_process_pipeline(WGPUDevice device, diff --git a/src/gpu/effects/shaders.cc b/src/gpu/effects/shaders.cc index cd516cd..b2d184d 100644 --- a/src/gpu/effects/shaders.cc +++ b/src/gpu/effects/shaders.cc @@ -3,8 +3,6 @@ #include "../demo_effects.h" - - #if defined(USE_TEST_ASSETS) #include "test_assets.h" @@ -15,36 +13,23 @@ #endif - - #include "gpu/effects/shader_composer.h" #include "util/asset_manager.h" - - void InitShaderComposer() { - auto& sc = ShaderComposer::Get(); - - auto register_if_exists = [&](const char* name, AssetId id) { + size_t size; - size_t size; - - const char* data = (const char*)GetAsset(id, &size); - - if (data) { - - sc.RegisterSnippet(name, std::string(data, size)); - - } + const char* data = (const char*)GetAsset(id, &size); + if (data) { + sc.RegisterSnippet(name, std::string(data, size)); + } }; - - register_if_exists("common_uniforms", AssetId::ASSET_SHADER_COMMON_UNIFORMS); register_if_exists("sdf_primitives", AssetId::ASSET_SHADER_SDF_PRIMITIVES); @@ -52,23 +37,16 @@ void InitShaderComposer() { register_if_exists("lighting", AssetId::ASSET_SHADER_LIGHTING); register_if_exists("ray_box", AssetId::ASSET_SHADER_RAY_BOX); - } - - // Helper to get asset string or empty string static const char* SafeGetAsset(AssetId id) { + const uint8_t* data = GetAsset(id); - const uint8_t* data = GetAsset(id); - - return data ? (const char*)data : ""; - + return data ? (const char*)data : ""; } - - const char* main_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_MAIN); const char* particle_compute_wgsl = -- cgit v1.2.3