summaryrefslogtreecommitdiff
path: root/src/mapblock_mesh.cpp
diff options
context:
space:
mode:
authorWeblate <42@minetest.ru>2013-05-13 18:19:51 +0200
committerWeblate <42@minetest.ru>2013-05-13 18:19:51 +0200
commite0564d5de01dd26f7b4f4d188415f5cf5a47b5d0 (patch)
tree79a5a18634069822b84b9c878d8d26742567c4a3 /src/mapblock_mesh.cpp
parentbe96fa2fb884fca571b92f63d33e0c5a592a2aad (diff)
parent822723c2468ea763cdef447218059a5586e8e033 (diff)
downloadminetest-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.cpp13
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++)