indexBuffer reserve amount seems off. (#5268)

Signed-off-by: rhhong <rhhong@amazon.com>
This commit is contained in:
Roman
2021-11-03 15:56:03 -07:00
committed by GitHub
parent e4c46ffb5d
commit 618a65e7dd
@@ -659,16 +659,17 @@ namespace AZ
AuxGeomIndex vertexOffset = aznumeric_cast<AuxGeomIndex>(primBuffer.m_vertexBuffer.size());
AuxGeomIndex indexOffset = aznumeric_cast<AuxGeomIndex>(primBuffer.m_indexBuffer.size());
const size_t vertexCountTotal = aznumeric_cast<size_t>(vertexOffset) + vertexCount;
if (aznumeric_cast<size_t>(vertexOffset) + vertexCount > MaxDynamicVertexCount)
if (vertexCountTotal > MaxDynamicVertexCount)
{
AZ_WarningOnce("AuxGeom", false, "Draw function ignored, would exceed maximum allowed index of %d", MaxDynamicVertexCount);
return;
}
AZ::Vector3 center(0.0f, 0.0f, 0.0f);
primBuffer.m_vertexBuffer.reserve(vertexCount);
primBuffer.m_indexBuffer.reserve(vertexCount);
primBuffer.m_vertexBuffer.reserve(vertexCountTotal);
primBuffer.m_indexBuffer.reserve(vertexCountTotal);
for (uint32_t vertexIndex = 0; vertexIndex < vertexCount; ++vertexIndex)
{
AZ::u32 packedColor = packedColorFunction(vertexIndex);
@@ -734,15 +735,16 @@ namespace AZ
AuxGeomIndex vertexOffset = aznumeric_cast<AuxGeomIndex>(primBuffer.m_vertexBuffer.size());
AuxGeomIndex indexOffset = aznumeric_cast<AuxGeomIndex>(primBuffer.m_indexBuffer.size());
const size_t vertexCountTotal = aznumeric_cast<size_t>(vertexOffset) + vertexCount;
if (aznumeric_cast<size_t>(vertexOffset) + vertexCount > MaxDynamicVertexCount)
if (vertexCountTotal > MaxDynamicVertexCount)
{
AZ_WarningOnce("AuxGeom", false, "Draw function ignored, would exceed maximum allowed index of %d", MaxDynamicVertexCount);
return;
}
AZ::Vector3 center(0.0f, 0.0f, 0.0f);
primBuffer.m_vertexBuffer.reserve(vertexCount);
primBuffer.m_vertexBuffer.reserve(vertexCountTotal);
for (uint32_t vertexIndex = 0; vertexIndex < vertexCount; ++vertexIndex)
{
AZ::u32 packedColor = packedColorFunction(vertexIndex);
@@ -753,7 +755,7 @@ namespace AZ
}
center /= aznumeric_cast<float>(vertexCount);
primBuffer.m_indexBuffer.reserve(indexCount);
primBuffer.m_indexBuffer.reserve(indexCount + indexOffset);
for (uint32_t index = 0; index < indexCount; ++index)
{
primBuffer.m_indexBuffer.push_back(vertexOffset + indexFunction(index));