mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-09-17 00:22:24 -04:00
reduces virtual function calls in a hotspot of cache retrieval (#3100)
* chunkmanager.cpp static_cast [ci skip] * groundcover.cpp static_cast [ci skip] * Update objectpaging.cpp objectpaging.cpp static_cast [ci skip]
This commit is contained in:
parent
01a8998e3b
commit
ac72f3d636
@ -184,7 +184,7 @@ namespace MWRender
|
|||||||
|
|
||||||
osg::ref_ptr<osg::Object> obj = mCache->getRefFromObjectCache(id);
|
osg::ref_ptr<osg::Object> obj = mCache->getRefFromObjectCache(id);
|
||||||
if (obj)
|
if (obj)
|
||||||
return obj->asNode();
|
return static_cast<osg::Node*>(obj.get());
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
InstanceMap instances;
|
InstanceMap instances;
|
||||||
|
@ -77,7 +77,7 @@ namespace MWRender
|
|||||||
|
|
||||||
osg::ref_ptr<osg::Object> obj = mCache->getRefFromObjectCache(id);
|
osg::ref_ptr<osg::Object> obj = mCache->getRefFromObjectCache(id);
|
||||||
if (obj)
|
if (obj)
|
||||||
return obj->asNode();
|
return static_cast<osg::Node*>(obj.get());
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
osg::ref_ptr<osg::Node> node = createChunk(size, center, activeGrid, viewPoint, compile);
|
osg::ref_ptr<osg::Node> node = createChunk(size, center, activeGrid, viewPoint, compile);
|
||||||
|
@ -45,7 +45,7 @@ osg::ref_ptr<osg::Node> ChunkManager::getChunk(float size, const osg::Vec2f& cen
|
|||||||
ChunkId id = std::make_tuple(center, lod, lodFlags);
|
ChunkId id = std::make_tuple(center, lod, lodFlags);
|
||||||
osg::ref_ptr<osg::Object> obj = mCache->getRefFromObjectCache(id);
|
osg::ref_ptr<osg::Object> obj = mCache->getRefFromObjectCache(id);
|
||||||
if (obj)
|
if (obj)
|
||||||
return obj->asNode();
|
return static_cast<osg::Node*>(obj.get());
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
osg::ref_ptr<osg::Node> node = createChunk(size, center, lod, lodFlags, compile);
|
osg::ref_ptr<osg::Node> node = createChunk(size, center, lod, lodFlags, compile);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user