5#include <unordered_map>
15#include "misc/Error.h"
16#include "shader/ShaderDescription.h"
17#include "shader/general/cache/ShaderCacheManager.h"
18#include "shader/general/ShaderPack.h"
85 std::vector<ShaderDescription> vShadersToCompile,
86 const std::function<
void(
size_t iCompiledShaderCount,
size_t iTotalShadersToCompile)>& onProgress,
88 void(
ShaderDescription shaderDescription, std::variant<std::string, Error> error)>& onError,
89 const std::function<
void()>& onCompleted);
173 const std::shared_ptr<std::atomic<size_t>>& pCompiledShaderCount,
174 size_t iTotalShaderCount,
176 const std::function<
void(
size_t iCompiledShaderCount,
size_t iTotalShadersToCompile)>& onProgress,
178 void(
ShaderDescription shaderDescription, std::variant<std::string, Error> error)>& onError,
179 const std::function<
void()>& onCompleted);
191 std::optional<std::shared_ptr<ShaderPack>>
getShader(
const std::string& sShaderName);
260 'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'O',
'P',
'Q',
261 'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
262 'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
263 'z',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'.',
'_',
'-'};
Definition: Renderer.h:39
Definition: ShaderManager.h:25
bool markShaderToBeRemoved(const std::string &sShaderName)
Definition: ShaderManager.cpp:106
void performSelfValidation()
Definition: ShaderManager.cpp:136
std::unique_ptr< ShaderCacheManager > pShaderCacheManager
Definition: ShaderManager.h:240
void compileShaderTask(size_t iQueryId, const std::shared_ptr< std::atomic< size_t > > &pCompiledShaderCount, size_t iTotalShaderCount, ShaderDescription shaderDescription, const std::function< void(size_t iCompiledShaderCount, size_t iTotalShadersToCompile)> &onProgress, const std::function< void(ShaderDescription shaderDescription, std::variant< std::string, Error > error)> &onError, const std::function< void()> &onCompleted)
Definition: ShaderManager.cpp:329
static const size_t iMaximumShaderNameLength
Definition: ShaderManager.h:266
static const std::array< char, 65 > vValidCharactersForShaderName
Definition: ShaderManager.h:259
std::atomic< size_t > iTotalCompileShadersQueries
Definition: ShaderManager.h:249
void setRendererConfigurationForShaders(const std::set< ShaderMacro > &configuration, ShaderType shaderType)
Definition: ShaderManager.cpp:232
Renderer *const pRenderer
Definition: ShaderManager.h:252
bool isShaderNameCanBeUsed(const std::string &sShaderName)
Definition: ShaderManager.cpp:98
std::optional< Error > compileShaders(std::vector< ShaderDescription > vShadersToCompile, const std::function< void(size_t iCompiledShaderCount, size_t iTotalShadersToCompile)> &onProgress, const std::function< void(ShaderDescription shaderDescription, std::variant< std::string, Error > error)> &onError, const std::function< void()> &onCompleted)
Definition: ShaderManager.cpp:243
void removeShaderIfMarkedToBeRemoved(const std::string &sShaderName)
Definition: ShaderManager.cpp:56
std::pair< std::recursive_mutex, ShaderData > mtxShaderData
Definition: ShaderManager.h:243
void releaseShaderBytecodeIfNotUsed(const std::string &sShaderName)
Definition: ShaderManager.cpp:36
std::optional< std::shared_ptr< ShaderPack > > getShader(const std::string &sShaderName)
Definition: ShaderManager.cpp:24
std::optional< Error > refreshShaderCache()
Definition: ShaderManager.cpp:86
Definition: ShaderUser.h:20
Definition: ShaderDescription.h:74
Definition: ShaderManager.h:222
std::unordered_map< std::string, std::shared_ptr< ShaderPack > > compiledShaders
Definition: ShaderManager.h:230
std::vector< std::string > vShadersToBeRemoved
Definition: ShaderManager.h:236