mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-28 19:21:04 +00:00
add scene switch node
This commit is contained in:
parent
1a4f351e3d
commit
56c74fb96f
@ -205,7 +205,9 @@ namespace MWRender
|
|||||||
mSceneRoot = sceneRoot;
|
mSceneRoot = sceneRoot;
|
||||||
sceneRoot->setStartLight(1);
|
sceneRoot->setStartLight(1);
|
||||||
|
|
||||||
mRootNode->addChild(sceneRoot);
|
mSceneSwitch = new osg::Switch;
|
||||||
|
mSceneSwitch->addChild(sceneRoot);
|
||||||
|
mRootNode->addChild(mSceneSwitch);
|
||||||
|
|
||||||
mPathgrid.reset(new Pathgrid(mRootNode));
|
mPathgrid.reset(new Pathgrid(mRootNode));
|
||||||
|
|
||||||
@ -814,13 +816,16 @@ namespace MWRender
|
|||||||
// at the time this function is called we are in the middle of a frame,
|
// at the time this function is called we are in the middle of a frame,
|
||||||
// so out of order calls are necessary to get a correct frameNumber for the next frame.
|
// so out of order calls are necessary to get a correct frameNumber for the next frame.
|
||||||
// refer to the advance() and frame() order in Engine::go()
|
// refer to the advance() and frame() order in Engine::go()
|
||||||
|
|
||||||
|
mSceneSwitch->setAllChildrenOff(); // don't render the scene for main camera
|
||||||
|
|
||||||
mViewer->eventTraversal();
|
mViewer->eventTraversal();
|
||||||
mViewer->updateTraversal();
|
mViewer->updateTraversal();
|
||||||
mViewer->renderingTraversals();
|
mViewer->renderingTraversals();
|
||||||
|
|
||||||
callback->waitTillDone();
|
callback->waitTillDone();
|
||||||
|
|
||||||
|
mSceneSwitch->setAllChildrenOn();
|
||||||
|
|
||||||
mViewer->getCamera()->setClearMask(maskBackup);
|
mViewer->getCamera()->setClearMask(maskBackup);
|
||||||
mViewer->getCamera()->setClearDepth(clearDepthBackup);
|
mViewer->getCamera()->setClearDepth(clearDepthBackup);
|
||||||
|
|
||||||
|
@ -224,6 +224,7 @@ namespace MWRender
|
|||||||
osg::ref_ptr<osgViewer::Viewer> mViewer;
|
osg::ref_ptr<osgViewer::Viewer> mViewer;
|
||||||
osg::ref_ptr<osg::Group> mRootNode;
|
osg::ref_ptr<osg::Group> mRootNode;
|
||||||
osg::ref_ptr<osg::Group> mSceneRoot;
|
osg::ref_ptr<osg::Group> mSceneRoot;
|
||||||
|
osg::ref_ptr<osg::Switch> mSceneSwitch;
|
||||||
Resource::ResourceSystem* mResourceSystem;
|
Resource::ResourceSystem* mResourceSystem;
|
||||||
|
|
||||||
osg::ref_ptr<SceneUtil::WorkQueue> mWorkQueue;
|
osg::ref_ptr<SceneUtil::WorkQueue> mWorkQueue;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user