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/tests/test_shader_composer.cc | 46 ++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 22 deletions(-) (limited to 'src/tests/test_shader_composer.cc') diff --git a/src/tests/test_shader_composer.cc b/src/tests/test_shader_composer.cc index 7efcd83..16dabba 100644 --- a/src/tests/test_shader_composer.cc +++ b/src/tests/test_shader_composer.cc @@ -15,7 +15,6 @@ // Forward declaration for asset loading const uint8_t* GetAsset(AssetId asset_id, size_t* out_size); - void test_composition() { std::cout << "Testing Shader Composition..." << std::endl; auto& sc = ShaderComposer::Get(); @@ -42,35 +41,38 @@ void test_composition() { } void test_asset_composition() { - std::cout << "Testing Asset-Based Shader Composition..." << std::endl; + std::cout << "Testing Asset-Based Shader Composition..." << std::endl; - // Use test assets - auto& sc = ShaderComposer::Get(); + // Use test assets + auto& sc = ShaderComposer::Get(); - size_t snippet_a_size; - const char* snippet_a_code = (const char*)GetAsset(AssetId::ASSET_SHADER_SNIPPET_A, &snippet_a_size); - assert(snippet_a_code != nullptr); - sc.RegisterSnippet("SNIPPET_A", std::string(snippet_a_code, snippet_a_size)); + size_t snippet_a_size; + const char* snippet_a_code = + (const char*)GetAsset(AssetId::ASSET_SHADER_SNIPPET_A, &snippet_a_size); + assert(snippet_a_code != nullptr); + sc.RegisterSnippet("SNIPPET_A", std::string(snippet_a_code, snippet_a_size)); - size_t snippet_b_size; - const char* snippet_b_code = (const char*)GetAsset(AssetId::ASSET_SHADER_SNIPPET_B, &snippet_b_size); - sc.RegisterSnippet("SNIPPET_B", std::string(snippet_b_code, snippet_b_size)); + size_t snippet_b_size; + const char* snippet_b_code = + (const char*)GetAsset(AssetId::ASSET_SHADER_SNIPPET_B, &snippet_b_size); + sc.RegisterSnippet("SNIPPET_B", std::string(snippet_b_code, snippet_b_size)); - std::string main_code = "fn main() -> f32 { return snippet_a() + snippet_b(); }"; - std::string result = sc.Compose({"SNIPPET_A", "SNIPPET_B"}, main_code); + std::string main_code = + "fn main() -> f32 { return snippet_a() + snippet_b(); }"; + std::string result = sc.Compose({"SNIPPET_A", "SNIPPET_B"}, main_code); - assert(result.find("fn snippet_a()") != std::string::npos); - assert(result.find("fn snippet_b()") != std::string::npos); - assert(result.find("fn main()") != std::string::npos); + assert(result.find("fn snippet_a()") != std::string::npos); + assert(result.find("fn snippet_b()") != std::string::npos); + assert(result.find("fn main()") != std::string::npos); - size_t pos_a = result.find("snippet_a"); - size_t pos_b = result.find("snippet_b"); - size_t pos_main = result.find("main"); + size_t pos_a = result.find("snippet_a"); + size_t pos_b = result.find("snippet_b"); + size_t pos_main = result.find("main"); - assert(pos_a < pos_b); - assert(pos_b < pos_main); + assert(pos_a < pos_b); + assert(pos_b < pos_main); - std::cout << "Asset-based composition logic verified." << std::endl; + std::cout << "Asset-based composition logic verified." << std::endl; } int main() { -- cgit v1.2.3