diff options
Diffstat (limited to 'src/gpu/effects')
| -rw-r--r-- | src/gpu/effects/shader_composer.cc | 10 | ||||
| -rw-r--r-- | src/gpu/effects/shader_composer.h | 5 |
2 files changed, 15 insertions, 0 deletions
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 <set> #include <sstream> @@ -86,3 +87,12 @@ ShaderComposer::Compose(const std::vector<std::string>& dependencies, return ss.str(); } + +std::string +ShaderComposer::Compose(const std::vector<std::string>& dependencies, + AssetId main_code_asset_id, + const CompositionMap& substitutions) { + size_t size; + const char* main_code = reinterpret_cast<const char*>(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 <map> #include <set> #include <string> @@ -23,6 +24,10 @@ class ShaderComposer { std::string Compose(const std::vector<std::string>& dependencies, const std::string& main_code, const CompositionMap& substitutions = {}); + + std::string Compose(const std::vector<std::string>& dependencies, + AssetId main_code_asset_id, + const CompositionMap& substitutions = {}); private: ShaderComposer() = default; |
