diff options
author | Weblate <42@minetest.ru> | 2013-05-13 18:19:51 +0200 |
---|---|---|
committer | Weblate <42@minetest.ru> | 2013-05-13 18:19:51 +0200 |
commit | e0564d5de01dd26f7b4f4d188415f5cf5a47b5d0 (patch) | |
tree | 79a5a18634069822b84b9c878d8d26742567c4a3 /src/mapblock_mesh.cpp | |
parent | be96fa2fb884fca571b92f63d33e0c5a592a2aad (diff) | |
parent | 822723c2468ea763cdef447218059a5586e8e033 (diff) | |
download | minetest-e0564d5de01dd26f7b4f4d188415f5cf5a47b5d0.tar.gz minetest-e0564d5de01dd26f7b4f4d188415f5cf5a47b5d0.tar.bz2 minetest-e0564d5de01dd26f7b4f4d188415f5cf5a47b5d0.zip |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'src/mapblock_mesh.cpp')
-rw-r--r-- | src/mapblock_mesh.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/mapblock_mesh.cpp b/src/mapblock_mesh.cpp index f8a0b5f06..0f83e863c 100644 --- a/src/mapblock_mesh.cpp +++ b/src/mapblock_mesh.cpp @@ -1338,12 +1338,20 @@ void MeshCollector::append(const TileSpec &tile, const video::S3DVertex *vertices, u32 numVertices, const u16 *indices, u32 numIndices) { + if(numIndices > 65535) + { + dstream<<"FIXME: MeshCollector::append() called with numIndices="<<numIndices<<" (limit 65535)"<<std::endl; + return; + } + PreMeshBuffer *p = NULL; for(u32 i=0; i<prebuffers.size(); i++) { PreMeshBuffer &pp = prebuffers[i]; if(pp.tile != tile) continue; + if(pp.indices.size() + numIndices > 65535) + continue; p = &pp; break; @@ -1361,11 +1369,6 @@ void MeshCollector::append(const TileSpec &tile, for(u32 i=0; i<numIndices; i++) { u32 j = indices[i] + vertex_count; - if(j > 65535) - { - dstream<<"FIXME: Meshbuffer ran out of indices"<<std::endl; - // NOTE: Fix is to just add an another MeshBuffer - } p->indices.push_back(j); } for(u32 i=0; i<numVertices; i++) |