From 16c2cdce6ad1d89d3c537f2c2cff743449925125 Mon Sep 17 00:00:00 2001 From: skal Date: Sun, 8 Feb 2026 08:33:55 +0100 Subject: feat(platform): Centralize platform-specific WebGPU code and improve shader composition --- src/gpu/effects/shader_composer.cc | 10 ++++++++++ src/gpu/effects/shader_composer.h | 5 +++++ 2 files changed, 15 insertions(+) (limited to 'src/gpu/effects') diff --git a/src/gpu/effects/shader_composer.cc b/src/gpu/effects/shader_composer.cc index b746f8b..5cd8699 100644 --- a/src/gpu/effects/shader_composer.cc +++ b/src/gpu/effects/shader_composer.cc @@ -2,6 +2,7 @@ // It implements the ShaderComposer class. #include "gpu/effects/shader_composer.h" +#include "util/asset_manager.h" #include #include @@ -86,3 +87,12 @@ ShaderComposer::Compose(const std::vector& dependencies, return ss.str(); } + +std::string +ShaderComposer::Compose(const std::vector& dependencies, + AssetId main_code_asset_id, + const CompositionMap& substitutions) { + size_t size; + const char* main_code = reinterpret_cast(GetAsset(main_code_asset_id, &size)); + return Compose(dependencies, std::string(main_code, size), substitutions); +} diff --git a/src/gpu/effects/shader_composer.h b/src/gpu/effects/shader_composer.h index 9eb43f4..961ffcb 100644 --- a/src/gpu/effects/shader_composer.h +++ b/src/gpu/effects/shader_composer.h @@ -3,6 +3,7 @@ #pragma once +#include "generated/assets.h" // For AssetId #include #include #include @@ -23,6 +24,10 @@ class ShaderComposer { std::string Compose(const std::vector& dependencies, const std::string& main_code, const CompositionMap& substitutions = {}); + + std::string Compose(const std::vector& dependencies, + AssetId main_code_asset_id, + const CompositionMap& substitutions = {}); private: ShaderComposer() = default; -- cgit v1.2.3