5#include <unordered_map>
11#include "shader/ShaderDescription.h"
12#include "shader/general/ShaderMacro.h"
58 static std::variant<std::shared_ptr<ShaderPack>, std::string,
Error>
76 std::optional<ShaderCacheInvalidationReason>& cacheInvalidationReason);
114 const std::set<ShaderMacro>& additionalConfiguration,
115 std::set<ShaderMacro>& fullShaderConfiguration);
148 const std::set<ShaderMacro>& shaderConfigurationMacros,
Definition: Renderer.h:39
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:172
bool releaseShaderPackDataFromMemoryIfLoaded()
Definition: ShaderPack.cpp:171
std::string getShaderName() const
Definition: ShaderPack.cpp:242
ShaderType shaderType
Definition: ShaderPack.h:178
void setRendererConfiguration(const std::set< ShaderMacro > &renderConfiguration)
Definition: ShaderPack.cpp:154
std::string sShaderName
Definition: ShaderPack.h:175
ShaderType getShaderType()
Definition: ShaderPack.cpp:244
std::shared_ptr< Shader > getShader(const std::set< ShaderMacro > &additionalConfiguration, std::set< ShaderMacro > &fullShaderConfiguration)
Definition: ShaderPack.cpp:184
std::pair< std::mutex, InternalResources > * getInternalResources()
Definition: ShaderPack.cpp:246
static void addEngineMacrosToShaderDescription(ShaderDescription &description, const std::set< ShaderMacro > &shaderConfigurationMacros, Renderer *pRenderer)
Definition: ShaderPack.cpp:250
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:196
Definition: ShaderPack.h:28
std::set< ShaderMacro > renderConfiguration
Definition: ShaderPack.h:35
std::unordered_map< std::set< ShaderMacro >, std::shared_ptr< Shader >, ShaderMacroSetHash > shadersInPack
Definition: ShaderPack.h:39
bool bIsRenderConfigurationSet
Definition: ShaderPack.h:32