Skip to content

Commit c41352a

Browse files
lhofhanslnerzhul
authored andcommittedJan 14, 2017
Only set material flag on rendered meshes (#5023)
1 parent f0c6fec commit c41352a

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed
 

‎src/clientmap.cpp

+9-8
Original file line numberDiff line numberDiff line change
@@ -371,10 +371,10 @@ struct MeshBufListList
371371

372372
void add(scene::IMeshBuffer *buf)
373373
{
374+
const video::SMaterial &m = buf->getMaterial();
374375
for(std::vector<MeshBufList>::iterator i = lists.begin();
375376
i != lists.end(); ++i){
376377
MeshBufList &l = *i;
377-
video::SMaterial &m = buf->getMaterial();
378378

379379
// comparing a full material is quite expensive so we don't do it if
380380
// not even first texture is equal
@@ -387,7 +387,7 @@ struct MeshBufListList
387387
}
388388
}
389389
MeshBufList l;
390-
l.m = buf->getMaterial();
390+
l.m = m;
391391
l.bufs.push_back(buf);
392392
lists.push_back(l);
393393
}
@@ -508,19 +508,20 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
508508
{
509509
scene::IMeshBuffer *buf = mesh->getMeshBuffer(i);
510510

511-
buf->getMaterial().setFlag(video::EMF_TRILINEAR_FILTER, m_cache_trilinear_filter);
512-
buf->getMaterial().setFlag(video::EMF_BILINEAR_FILTER, m_cache_bilinear_filter);
513-
buf->getMaterial().setFlag(video::EMF_ANISOTROPIC_FILTER, m_cache_anistropic_filter);
514-
buf->getMaterial().setFlag(video::EMF_WIREFRAME, m_control.show_wireframe);
515-
516-
const video::SMaterial& material = buf->getMaterial();
511+
video::SMaterial& material = buf->getMaterial();
517512
video::IMaterialRenderer* rnd =
518513
driver->getMaterialRenderer(material.MaterialType);
519514
bool transparent = (rnd && rnd->isTransparent());
520515
if (transparent == is_transparent_pass) {
521516
if (buf->getVertexCount() == 0)
522517
errorstream << "Block [" << analyze_block(block)
523518
<< "] contains an empty meshbuf" << std::endl;
519+
520+
material.setFlag(video::EMF_TRILINEAR_FILTER, m_cache_trilinear_filter);
521+
material.setFlag(video::EMF_BILINEAR_FILTER, m_cache_bilinear_filter);
522+
material.setFlag(video::EMF_ANISOTROPIC_FILTER, m_cache_anistropic_filter);
523+
material.setFlag(video::EMF_WIREFRAME, m_control.show_wireframe);
524+
524525
drawbufs.add(buf);
525526
}
526527
}

0 commit comments

Comments
 (0)
Please sign in to comment.