diff --git a/ChangeLog.md b/ChangeLog.md index 6acbd19aa..ca17d7e7a 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -138,7 +138,8 @@ Nazara Engine: - Added BoxCollider2D::GetRadius - Added CircleCollider2D::GetOffset - Added ConvexCollider2D::GetVertices -- Added SegmentCollider2D::GetThickness() +- Added SegmentCollider2D::GetThickness +- Fixed vertices generation/render queue submit when using multiples materials on a Tilemap Nazara Development Kit: - Added ImageWidget (#139) diff --git a/src/Nazara/Graphics/TileMap.cpp b/src/Nazara/Graphics/TileMap.cpp index 6a30496c3..eb1831bcf 100644 --- a/src/Nazara/Graphics/TileMap.cpp +++ b/src/Nazara/Graphics/TileMap.cpp @@ -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 colorPtr(&vertices[spriteCount].color, sizeof(VertexStruct_XYZ_Color_UV)); - SparsePtr posPtr(&vertices[spriteCount].position, sizeof(VertexStruct_XYZ_Color_UV)); - SparsePtr texCoordPtr(&vertices[spriteCount].uv, sizeof(VertexStruct_XYZ_Color_UV)); + SparsePtr colorPtr(&vertices[4 * spriteCount].color, sizeof(VertexStruct_XYZ_Color_UV)); + SparsePtr posPtr(&vertices[4 * spriteCount].position, sizeof(VertexStruct_XYZ_Color_UV)); + SparsePtr texCoordPtr(&vertices[4 * spriteCount].uv, sizeof(VertexStruct_XYZ_Color_UV)); for (std::size_t tileIndex : layer.tiles) {