From 20936e1c3e3ccc0bea2fbf212ebfff11f3cda8c3 Mon Sep 17 00:00:00 2001 From: number Zero Date: Sun, 16 Jul 2017 23:43:01 +0300 Subject: [PATCH] Mesh generation: Fix performance regression caused by 'plantlike_rooted' PR Regression caused by ef285b2815962a7a01791059ed984cb12fdba4dd --- src/content_mapblock.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/content_mapblock.cpp b/src/content_mapblock.cpp index 8eedade6e..935240dae 100644 --- a/src/content_mapblock.cpp +++ b/src/content_mapblock.cpp @@ -1288,14 +1288,21 @@ void MapblockMeshGenerator::errorUnknownDrawtype() void MapblockMeshGenerator::drawNode() { + // skip some drawtypes early + switch (f->drawtype) { + case NDT_NORMAL: // Drawn by MapBlockMesh + case NDT_AIRLIKE: // Not drawn at all + case NDT_LIQUID: // Drawn by MapBlockMesh + return; + default: + break; + } + origin = intToFloat(p, BS); if (data->m_smooth_lighting) getSmoothLightFrame(); else light = getInteriorLight(n, 1, nodedef); switch (f->drawtype) { - case NDT_NORMAL: break; // Drawn by MapBlockMesh - case NDT_AIRLIKE: break; // Not drawn at all - case NDT_LIQUID: break; // Drawn by MapBlockMesh case NDT_FLOWINGLIQUID: drawLiquidNode(); break; case NDT_GLASSLIKE: drawGlasslikeNode(); break; case NDT_GLASSLIKE_FRAMED: drawGlasslikeFramedNode(); break; @@ -1324,7 +1331,6 @@ void MapblockMeshGenerator::generate() for (p.X = 0; p.X < MAP_BLOCKSIZE; p.X++) { n = data->m_vmanip.getNodeNoEx(blockpos_nodes + p); f = &nodedef->get(n); - origin = intToFloat(p, BS); drawNode(); } }