1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-04-01 17:36:39 +00:00

Resolve #5509 where culling did not take invisiblity into accont

This commit is contained in:
Bret Curtis 2020-07-02 12:36:25 +02:00
parent 21d4c9fe84
commit e9126fae54

View file

@ -1481,10 +1481,10 @@ namespace MWRender
void Animation::setObjectRoot(const std::string &model, bool forceskeleton, bool baseonly, bool isCreature) void Animation::setObjectRoot(const std::string &model, bool forceskeleton, bool baseonly, bool isCreature)
{ {
osg::ref_ptr<osg::StateSet> previousStateset; osg::ref_ptr<osg::StateSet> previousStateset;
osg::ref_ptr<osg::Callback> previousCullCallback;
if (mObjectRoot) if (mObjectRoot)
{ {
if (mLightListCallback) previousCullCallback = mObjectRoot->getCullCallback();
mObjectRoot->removeCullCallback(mLightListCallback);
previousStateset = mObjectRoot->getStateSet(); previousStateset = mObjectRoot->getStateSet();
mObjectRoot->getParent(0)->removeChild(mObjectRoot); mObjectRoot->getParent(0)->removeChild(mObjectRoot);
} }
@ -1573,9 +1573,9 @@ namespace MWRender
removeTriBipVisitor.remove(); removeTriBipVisitor.remove();
} }
if (!mLightListCallback) if (!previousCullCallback)
mLightListCallback = new SceneUtil::LightListCallback; previousCullCallback = mLightListCallback;
mObjectRoot->addCullCallback(mLightListCallback); mObjectRoot->setCullCallback(previousCullCallback);
} }
osg::Group* Animation::getObjectRoot() osg::Group* Animation::getObjectRoot()