1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-03-26 20:37:25 +00:00

consolidate node mask checks (#3125)

* consolidate node mask checks

This PR simplifies a few checks against node masks in object paging by using the osg provided `setTraversalMask`.

* objectpaging.cpp
This commit is contained in:
Bo Svensson 2021-09-21 20:39:31 +00:00 committed by GitHub
parent 786b6b7c9a
commit b22fb7a7bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -272,7 +272,7 @@ namespace MWRender
: osg::NodeVisitor(TRAVERSE_ALL_CHILDREN)
, mCurrentStateSet(nullptr)
, mCurrentDistance(0.f)
, mAnalyzeMask(analyzeMask) {}
{ setTraversalMask(analyzeMask); }
typedef std::unordered_map<osg::StateSet*, unsigned int> StateSetCounter;
struct Result
@ -283,9 +283,6 @@ namespace MWRender
void apply(osg::Node& node) override
{
if (!(node.getNodeMask() & mAnalyzeMask))
return;
if (node.getStateSet())
mCurrentStateSet = node.getStateSet();
@ -308,9 +305,6 @@ namespace MWRender
}
void apply(osg::Geometry& geom) override
{
if (!(geom.getNodeMask() & mAnalyzeMask))
return;
if (osg::Array* array = geom.getVertexArray())
mResult.mNumVerts += array->getNumElements();
@ -345,7 +339,6 @@ namespace MWRender
osg::StateSet* mCurrentStateSet;
StateSetCounter mGlobalStateSetCounter;
float mCurrentDistance;
osg::Node::NodeMask mAnalyzeMask;
};
class DebugVisitor : public osg::NodeVisitor