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
};
enum PredefinedShaderBinding
enum class PredefinedShaderBinding
{
PredefinedShaderBinding_TexOverlay,
PredefinedShaderBinding_UboInstanceData,
PredefinedShaderBinding_UboLighData,
PredefinedShaderBinding_UboViewerData,
TexOverlay,
UboInstanceData,
UboLighData,
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

View File

@ -23,7 +23,7 @@ namespace Nz
{
public:
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 Texture;

View File

@ -135,7 +135,7 @@ namespace Nz
ImageType_2D
});
predefinedBinding[PredefinedShaderBinding_TexOverlay] = textures.size();
predefinedBinding[UnderlyingCast(PredefinedShaderBinding::TexOverlay)] = textures.size();
textures.push_back({
"TextureOverlay",
"Overlay",
@ -156,9 +156,9 @@ namespace Nz
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());
predefinedBinding[PredefinedShaderBinding_UboViewerData] = textures.size() + uniformBlocks.size() + sharedUniformBlock.size();
predefinedBinding[UnderlyingCast(PredefinedShaderBinding::UboViewerData)] = textures.size() + uniformBlocks.size() + sharedUniformBlock.size();
sharedUniformBlock.push_back(PredefinedViewerData::GetUniformBlock());
// Shaders

View File

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