Graphics/TileMap: Fix sprite data corruption with multiple materials

This commit is contained in:
Lynix
2018-08-23 17:46:18 +02:00
parent 2db5273d36
commit b9e36f36e2
2 changed files with 6 additions and 5 deletions

View File

@@ -31,7 +31,7 @@ namespace Nz
std::size_t spriteCount = 0;
for (const Layer& layer : m_layers)
{
renderQueue->AddSprites(instanceData.renderOrder, GetMaterial(matCount++), &vertices[spriteCount], layer.tiles.size(), scissorRect);
renderQueue->AddSprites(instanceData.renderOrder, GetMaterial(matCount++), &vertices[4 * spriteCount], layer.tiles.size(), scissorRect);
spriteCount += layer.tiles.size();
}
@@ -63,9 +63,9 @@ namespace Nz
spriteCount = 0;
for (const Layer& layer : m_layers)
{
SparsePtr<Color> colorPtr(&vertices[spriteCount].color, sizeof(VertexStruct_XYZ_Color_UV));
SparsePtr<Vector3f> posPtr(&vertices[spriteCount].position, sizeof(VertexStruct_XYZ_Color_UV));
SparsePtr<Vector2f> texCoordPtr(&vertices[spriteCount].uv, sizeof(VertexStruct_XYZ_Color_UV));
SparsePtr<Color> colorPtr(&vertices[4 * spriteCount].color, sizeof(VertexStruct_XYZ_Color_UV));
SparsePtr<Vector3f> posPtr(&vertices[4 * spriteCount].position, sizeof(VertexStruct_XYZ_Color_UV));
SparsePtr<Vector2f> texCoordPtr(&vertices[4 * spriteCount].uv, sizeof(VertexStruct_XYZ_Color_UV));
for (std::size_t tileIndex : layer.tiles)
{