Graphics: Fix PredefinedShaderBinding enum

This commit is contained in:
Jérôme Leclercq 2020-10-31 16:27:35 +01:00
parent a02c300c0c
commit 8027ae9abe
4 changed files with 15 additions and 14 deletions

View File

@ -17,16 +17,17 @@ namespace Nz
Volume Volume
}; };
enum PredefinedShaderBinding enum class PredefinedShaderBinding
{ {
PredefinedShaderBinding_TexOverlay, TexOverlay,
PredefinedShaderBinding_UboInstanceData, UboInstanceData,
PredefinedShaderBinding_UboLighData, UboLighData,
PredefinedShaderBinding_UboViewerData, UboViewerData,
PredefinedShaderBinding_Max = PredefinedShaderBinding_UboViewerData Max = UboViewerData
}; };
constexpr std::size_t PredefinedShaderBindingCount = static_cast<std::size_t>(PredefinedShaderBinding::Max) + 1;
} }
#endif // NAZARA_ENUMS_GRAPHICS_HPP #endif // NAZARA_ENUMS_GRAPHICS_HPP

View File

@ -23,7 +23,7 @@ namespace Nz
{ {
public: public:
using DefaultShaders = std::array<std::shared_ptr<ShaderStage>, ShaderStageTypeCount>; using DefaultShaders = std::array<std::shared_ptr<ShaderStage>, ShaderStageTypeCount>;
using PredefinedBinding = std::array<std::size_t, PredefinedShaderBinding_Max + 1>; using PredefinedBinding = std::array<std::size_t, PredefinedShaderBindingCount>;
struct SharedUniformBlock; struct SharedUniformBlock;
struct Texture; struct Texture;

View File

@ -135,7 +135,7 @@ namespace Nz
ImageType_2D ImageType_2D
}); });
predefinedBinding[PredefinedShaderBinding_TexOverlay] = textures.size(); predefinedBinding[UnderlyingCast(PredefinedShaderBinding::TexOverlay)] = textures.size();
textures.push_back({ textures.push_back({
"TextureOverlay", "TextureOverlay",
"Overlay", "Overlay",
@ -156,9 +156,9 @@ namespace Nz
std::vector<MaterialSettings::SharedUniformBlock> sharedUniformBlock; std::vector<MaterialSettings::SharedUniformBlock> sharedUniformBlock;
predefinedBinding[PredefinedShaderBinding_UboInstanceData] = textures.size() + uniformBlocks.size() + sharedUniformBlock.size(); predefinedBinding[UnderlyingCast(PredefinedShaderBinding::UboInstanceData)] = textures.size() + uniformBlocks.size() + sharedUniformBlock.size();
sharedUniformBlock.push_back(PredefinedInstanceData::GetUniformBlock()); sharedUniformBlock.push_back(PredefinedInstanceData::GetUniformBlock());
predefinedBinding[PredefinedShaderBinding_UboViewerData] = textures.size() + uniformBlocks.size() + sharedUniformBlock.size(); predefinedBinding[UnderlyingCast(PredefinedShaderBinding::UboViewerData)] = textures.size() + uniformBlocks.size() + sharedUniformBlock.size();
sharedUniformBlock.push_back(PredefinedViewerData::GetUniformBlock()); sharedUniformBlock.push_back(PredefinedViewerData::GetUniformBlock());
// Shaders // Shaders

View File

@ -199,11 +199,11 @@ namespace Nz
}); });
std::vector<MaterialSettings::SharedUniformBlock> sharedUniformBlock; std::vector<MaterialSettings::SharedUniformBlock> sharedUniformBlock;
predefinedBinding[PredefinedShaderBinding_UboInstanceData] = sharedUniformBlock.size(); predefinedBinding[UnderlyingCast(PredefinedShaderBinding::UboInstanceData)] = sharedUniformBlock.size();
sharedUniformBlock.push_back(PredefinedInstanceData::GetUniformBlock()); sharedUniformBlock.push_back(PredefinedInstanceData::GetUniformBlock());
predefinedBinding[PredefinedShaderBinding_UboLighData] = sharedUniformBlock.size(); predefinedBinding[UnderlyingCast(PredefinedShaderBinding::UboLighData)] = sharedUniformBlock.size();
sharedUniformBlock.push_back(PredefinedLightData::GetUniformBlock()); sharedUniformBlock.push_back(PredefinedLightData::GetUniformBlock());
predefinedBinding[PredefinedShaderBinding_UboViewerData] = sharedUniformBlock.size(); predefinedBinding[UnderlyingCast(PredefinedShaderBinding::UboViewerData)] = sharedUniformBlock.size();
sharedUniformBlock.push_back(PredefinedViewerData::GetUniformBlock()); sharedUniformBlock.push_back(PredefinedViewerData::GetUniformBlock());
std::vector<MaterialSettings::Texture> textures; std::vector<MaterialSettings::Texture> textures;
@ -249,7 +249,7 @@ namespace Nz
ImageType_2D ImageType_2D
}); });
predefinedBinding[PredefinedShaderBinding_TexOverlay] = textures.size(); predefinedBinding[UnderlyingCast(PredefinedShaderBinding::TexOverlay)] = textures.size();
textures.push_back({ textures.push_back({
"TextureOverlay", "TextureOverlay",
"Overlay", "Overlay",