diff --git a/src/engine/renderer/Material.cpp b/src/engine/renderer/Material.cpp index e7d6f1de19..c9ca0af2db 100644 --- a/src/engine/renderer/Material.cpp +++ b/src/engine/renderer/Material.cpp @@ -486,11 +486,11 @@ void MaterialSystem::GenerateMaterialsBuffer( std::vector& stage /* Stage variants are essentially copies of the same stage with slightly different values that normally come from a drawSurf_t */ uint32_t variants = 0; - for ( int i = 0; i < Util::ordinal( ShaderStageVariant::ALL ) && variants < pStage->variantOffset; i++ ) { + for ( int i = 0; i < ShaderStageVariant::ALL && variants < pStage->variantOffset; i++ ) { if ( pStage->variantOffsets[i] != -1 ) { - const bool mayUseVertexOverbright = i & Util::ordinal( ShaderStageVariant::VERTEX_OVERBRIGHT ); - const bool vertexLit = i & Util::ordinal( ShaderStageVariant::VERTEX_LIT ); - const bool fullbright = i & Util::ordinal( ShaderStageVariant::FULLBRIGHT ); + const bool mayUseVertexOverbright = i & ShaderStageVariant::VERTEX_OVERBRIGHT; + const bool vertexLit = i & ShaderStageVariant::VERTEX_LIT; + const bool fullbright = i & ShaderStageVariant::FULLBRIGHT; const uint32_t variantOffset = pStage->variantOffsets[i] * pStage->paddedSize; pStage->bufferOffset += variantOffset; @@ -1244,9 +1244,9 @@ void ProcessMaterialFog( Material* material, shaderStage_t* pStage, drawSurf_t* void MaterialSystem::AddStage( drawSurf_t* drawSurf, shaderStage_t* pStage, uint32_t stage, const bool mayUseVertexOverbright, const bool vertexLit, const bool fullbright ) { - const int variant = ( mayUseVertexOverbright ? Util::ordinal( ShaderStageVariant::VERTEX_OVERBRIGHT ) : 0 ) - | ( vertexLit ? Util::ordinal( ShaderStageVariant::VERTEX_LIT ) : 0 ) - | ( fullbright ? Util::ordinal( ShaderStageVariant::FULLBRIGHT ) : 0 ); + const int variant = ( mayUseVertexOverbright ? ShaderStageVariant::VERTEX_OVERBRIGHT : 0 ) + | ( vertexLit ? ShaderStageVariant::VERTEX_LIT : 0 ) + | ( fullbright ? ShaderStageVariant::FULLBRIGHT : 0 ); if ( pStage->variantOffsets[variant] == -1 ) { pStage->variantOffsets[variant] = pStage->variantOffset; diff --git a/src/engine/renderer/tr_local.h b/src/engine/renderer/tr_local.h index 3e66feb2f4..201f142a0a 100644 --- a/src/engine/renderer/tr_local.h +++ b/src/engine/renderer/tr_local.h @@ -1106,7 +1106,7 @@ enum class shaderProfilerRenderSubGroupsMode { using stageShaderBinder_t = void(*)(Material*); using stageMaterialProcessor_t = void(*)(Material*, shaderStage_t*, drawSurf_t*); - enum class ShaderStageVariant { + enum ShaderStageVariant { VERTEX_OVERBRIGHT = 1, VERTEX_LIT = BIT( 1 ), FULLBRIGHT = BIT( 2 ), @@ -1223,7 +1223,7 @@ enum class shaderProfilerRenderSubGroupsMode { bool dynamic = false; bool colorDynamic = false; - int variantOffsets[Util::ordinal( ShaderStageVariant::ALL )]; + int variantOffsets[ShaderStageVariant::ALL]; uint32_t variantOffset = 0; }; diff --git a/src/engine/renderer/tr_shader.cpp b/src/engine/renderer/tr_shader.cpp index 81a45342c6..4f6ea8e370 100644 --- a/src/engine/renderer/tr_shader.cpp +++ b/src/engine/renderer/tr_shader.cpp @@ -5240,7 +5240,7 @@ static void FinishStages() break; } - memset( stage->variantOffsets, -1, Util::ordinal( ShaderStageVariant::ALL ) * sizeof( int ) ); + memset( stage->variantOffsets, -1, ShaderStageVariant::ALL * sizeof( int ) ); } GroupActiveStages();