From Pavel Moloshtan, setting of the cull traversal mask which visiting camera
subgraphs. (with small tweak from Robert Osfield to remove compile warnings.)
This commit is contained in:
@@ -1110,12 +1110,23 @@ void CullVisitor::apply(osg::CameraNode& camera)
|
|||||||
// set the current renderbin to be the newly created stage.
|
// set the current renderbin to be the newly created stage.
|
||||||
setCurrentRenderBin(rtts.get());
|
setCurrentRenderBin(rtts.get());
|
||||||
|
|
||||||
|
// set the cull traversal mask of camera node
|
||||||
|
osg::Node::NodeMask saved_mask = getCullMask();
|
||||||
|
if (camera.getInheritanceMask() & CULL_MASK)
|
||||||
|
{
|
||||||
|
setTraversalMask(camera.getCullMask());
|
||||||
|
}
|
||||||
|
|
||||||
// traverse the subgraph
|
// traverse the subgraph
|
||||||
{
|
{
|
||||||
handle_cull_callbacks_and_traverse(camera);
|
handle_cull_callbacks_and_traverse(camera);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// restore the cull traversal mask of camera node
|
||||||
|
if (camera.getInheritanceMask() & CULL_MASK)
|
||||||
|
{
|
||||||
|
setTraversalMask(saved_mask);
|
||||||
|
}
|
||||||
|
|
||||||
// restore the previous renderbin.
|
// restore the previous renderbin.
|
||||||
setCurrentRenderBin(previousRenderBin);
|
setCurrentRenderBin(previousRenderBin);
|
||||||
@@ -1233,7 +1244,7 @@ void CullVisitor::apply(osg::CameraNode& camera)
|
|||||||
{
|
{
|
||||||
|
|
||||||
osg::CameraNode::BufferComponent buffer = itr->first;
|
osg::CameraNode::BufferComponent buffer = itr->first;
|
||||||
osg::CameraNode::Attachment& attachment = itr->second;
|
// osg::CameraNode::Attachment& attachment = itr->second;
|
||||||
switch(buffer)
|
switch(buffer)
|
||||||
{
|
{
|
||||||
case(osg::CameraNode::DEPTH_BUFFER):
|
case(osg::CameraNode::DEPTH_BUFFER):
|
||||||
|
|||||||
Reference in New Issue
Block a user