18 #ifndef INCLUDED_SHADERMANAGER 19 #define INCLUDED_SHADERMANAGER 21 #define USE_SHADER_XML_VALIDATION 1 23 #include <boost/unordered_map.hpp> 31 #if USE_SHADER_XML_VALIDATION 84 if (name < k.
name)
return true;
85 if (k.
name < name)
return false;
117 typedef boost::unordered_map<EffectCacheKey, CShaderTechniquePtr, EffectCacheKeyHash>
EffectCacheMap;
121 typedef boost::unordered_map<VfsPath, std::set<std::weak_ptr<CShaderProgram>, std::owner_less<std::weak_ptr<CShaderProgram>>>>
HotloadFilesMap;
131 #endif // INCLUDED_SHADERMANAGER CShaderDefines defines2
Definition: ShaderManager.h:107
~CShaderManager()
Definition: ShaderManager.cpp:55
Definition: ShaderManager.h:112
HotloadFilesMap m_HotloadFiles
Definition: ShaderManager.h:122
bool operator<(const CacheKey &k) const
Definition: ShaderManager.h:82
bool operator==(const FCDJointWeightPair &a, const FCDJointWeightPair &b)
Definition: GeomReindex.cpp:59
CShaderDefines defines
Definition: ShaderManager.h:80
std::string name
Definition: ShaderManager.h:79
Key for effect cache lookups.
Definition: ShaderManager.h:103
shared_ptr< CShaderTechnique > CShaderTechniquePtr
Definition: ShaderTechnique.h:113
std::map< CacheKey, CShaderProgramPtr > m_ProgramCache
Definition: ShaderManager.h:94
bool NewEffect(const char *name, const CShaderDefines &defines, CShaderTechniquePtr &tech)
Definition: ShaderManager.cpp:379
Status ReloadChangedFile(const VfsPath &path)
Definition: ShaderManager.cpp:564
Interned 8-bit strings.
Definition: CStrIntern.h:37
CShaderManager()
Definition: ShaderManager.cpp:40
CShaderTechniquePtr LoadEffect(CStrIntern name, const CShaderDefines &defines1, const CShaderDefines &defines2)
Load a shader effect.
Definition: ShaderManager.cpp:354
boost::unordered_map< EffectCacheKey, CShaderTechniquePtr, EffectCacheKeyHash > EffectCacheMap
Definition: ShaderManager.h:117
EffectCacheMap m_EffectCache
Definition: ShaderManager.h:118
pthread_key_t key
Definition: wpthread.cpp:140
Definition: ShaderManager.h:77
i64 Status
Error handling system.
Definition: status.h:171
boost::unordered_map< VfsPath, std::set< std::weak_ptr< CShaderProgram >, std::owner_less< std::weak_ptr< CShaderProgram > > > > HotloadFilesMap
Definition: ShaderManager.h:121
static Status ReloadChangedFileCB(void *param, const VfsPath &path)
Definition: ShaderManager.cpp:559
Represents a mapping of name strings to value strings, for use with #if and #ifdef and similar condit...
Definition: ShaderDefines.h:133
CShaderDefines defines1
Definition: ShaderManager.h:106
CShaderProgramPtr LoadProgram(const char *name, const CShaderDefines &defines)
Load a shader program.
Definition: ShaderManager.cpp:60
size_t GetNumEffectsLoaded()
Returns the number of shader effects that are currently loaded.
Definition: ShaderManager.cpp:554
bool NewProgram(const char *name, const CShaderDefines &defines, CShaderProgramPtr &program)
Definition: ShaderManager.cpp:105
CStrIntern name
Definition: ShaderManager.h:105
std::shared_ptr< CShaderProgram > CShaderProgramPtr
Definition: ShaderProgramPtr.h:25
Shader manager: loads and caches shader programs.
Definition: ShaderManager.h:42