6#include <unordered_map>
9#include "shader/general/Shader.h"
10#include "shader/glsl/DescriptorSetLayoutGenerator.h"
13#include "shaderc/shaderc.hpp"
14#include "vulkan/vulkan.h"
37 const std::optional<VertexFormat>& vertexFormat);
54 static std::variant<std::vector<uint32_t>, std::string,
Error>
72 const std::filesystem::path& cacheDirectory,
73 const std::string& sConfiguration,
94 std::pair<std::mutex, std::optional<DescriptorSetLayoutGenerator::Collected>>*
117 [[nodiscard]]
virtual std::optional<Error>
133 std::optional<ShaderCacheInvalidationReason>& cacheInvalidationReason)
override;
162 std::pair<std::mutex, std::optional<DescriptorSetLayoutGenerator::Collected>>
Definition: ConfigManager.h:27
Definition: GlslShader.h:20
std::variant< std::pair< std::recursive_mutex, std::vector< char > > *, Error > getCompiledBytecode()
Definition: GlslShader.cpp:217
std::pair< std::mutex, std::optional< DescriptorSetLayoutGenerator::Collected > > * getDescriptorSetLayoutInfo()
Definition: GlslShader.cpp:230
static std::variant< std::shared_ptr< Shader >, std::string, Error > compileShader(Renderer *pRenderer, const std::filesystem::path &cacheDirectory, const std::string &sConfiguration, const ShaderDescription &shaderDescription)
Definition: GlslShader.cpp:58
static shaderc_shader_kind convertShaderTypeToShadercShaderKind(ShaderType shaderType)
Definition: GlslShader.cpp:234
std::pair< std::mutex, std::optional< DescriptorSetLayoutGenerator::Collected > > mtxDescriptorSetLayoutInfo
Definition: GlslShader.h:163
std::pair< std::recursive_mutex, std::vector< char > > mtxSpirvBytecode
Definition: GlslShader.h:154
virtual std::optional< Error > saveAdditionalCompilationResultsInfo(ConfigManager &cacheMetadataConfigManager) override
Definition: GlslShader.cpp:206
virtual std::optional< Error > checkCachedAdditionalCompilationResultsInfo(ConfigManager &cacheMetadataConfigManager, std::optional< ShaderCacheInvalidationReason > &cacheInvalidationReason) override
Definition: GlslShader.cpp:210
virtual bool releaseShaderDataFromMemoryIfLoaded() override
Definition: GlslShader.cpp:184
std::optional< Error > loadShaderDataFromDiskIfNotLoaded()
Definition: GlslShader.cpp:255
static std::variant< std::vector< uint32_t >, std::string, Error > compileShaderToBytecode(const ShaderDescription &shaderDescription)
static const auto sDescriptorSetLayoutSectionName
Definition: GlslShader.h:166
Definition: Renderer.h:43
const ShaderType shaderType
Definition: Shader.h:254
const std::filesystem::path pathToCompiledShader
Definition: Shader.h:257
const std::string sShaderName
Definition: Shader.h:251
Renderer *const pRenderer
Definition: Shader.h:241
Definition: ShaderDescription.h:74