5#include <unordered_map>
11#include "shader/ShaderDescription.h"
12#include "shader/general/ShaderMacro.h"
52 static std::variant<std::shared_ptr<ShaderPack>, std::string,
Error>
70 std::optional<ShaderCacheInvalidationReason>& cacheInvalidationReason);
92 std::shared_ptr<Shader>
getShader(
const std::set<ShaderMacro>& shaderConfiguration);
125 const std::set<ShaderMacro>& shaderConfigurationMacros,
Definition: Renderer.h:43
Definition: ShaderManager.h:25
Definition: ShaderPack.h:22
static std::variant< std::shared_ptr< ShaderPack >, std::string, Error > compileShaderPack(Renderer *pRenderer, const ShaderDescription &shaderDescription)
Definition: ShaderPack.cpp:96
std::pair< std::mutex, InternalResources > mtxInternalResources
Definition: ShaderPack.h:137
bool releaseShaderPackDataFromMemoryIfLoaded()
Definition: ShaderPack.cpp:154
std::string getShaderName() const
Definition: ShaderPack.cpp:186
ShaderType shaderType
Definition: ShaderPack.h:143
std::shared_ptr< Shader > getShader(const std::set< ShaderMacro > &shaderConfiguration)
Definition: ShaderPack.cpp:167
std::string sShaderName
Definition: ShaderPack.h:140
ShaderType getShaderType()
Definition: ShaderPack.cpp:188
std::pair< std::mutex, InternalResources > * getInternalResources()
Definition: ShaderPack.cpp:190
static void addEngineMacrosToShaderDescription(ShaderDescription &description, const std::set< ShaderMacro > &shaderConfigurationMacros, Renderer *pRenderer)
Definition: ShaderPack.cpp:194
static std::variant< std::shared_ptr< ShaderPack >, Error > createFromCache(Renderer *pRenderer, const ShaderDescription &shaderDescription, std::optional< ShaderCacheInvalidationReason > &cacheInvalidationReason)
Definition: ShaderPack.cpp:15
Definition: ShaderDescription.h:74
Definition: ShaderMacro.h:198
Definition: ShaderPack.h:28
std::unordered_map< std::set< ShaderMacro >, std::shared_ptr< Shader >, ShaderMacroSetHash > shadersInPack
Definition: ShaderPack.h:33