summaryrefslogtreecommitdiff
path: root/src/gpu/effects
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/effects')
-rw-r--r--src/gpu/effects/shader_composer.cc10
-rw-r--r--src/gpu/effects/shader_composer.h5
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;