Renderer: Implement firstIndex on DrawIndexed command for OpenGL

This commit is contained in:
Jérôme Leclercq
2021-09-05 15:46:00 +02:00
parent 02a12d9328
commit b6c3988bbe
9 changed files with 16 additions and 14 deletions

View File

@@ -96,8 +96,10 @@ namespace Nz
}
else if constexpr (std::is_same_v<T, DrawIndexedData>)
{
const UInt8* origin = 0; //< For an easy way to cast an integer to a pointer
ApplyStates(*context, command.states);
context->glDrawElementsInstanced(ToOpenGL(command.states.pipeline->GetPipelineInfo().primitiveMode), command.indexCount, GL_UNSIGNED_SHORT, nullptr, command.instanceCount);
context->glDrawElementsInstanced(ToOpenGL(command.states.pipeline->GetPipelineInfo().primitiveMode), command.indexCount, GL_UNSIGNED_SHORT, origin + command.firstIndex * sizeof(UInt16), command.instanceCount);
}
else if constexpr (std::is_same_v<T, EndDebugRegionData>)
{