Made the member variables in RenderStage and RenderBin protected
This commit is contained in:
@@ -134,8 +134,8 @@ public:
|
||||
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
|
||||
{
|
||||
|
||||
osgUtil::CullVisitor* cullVisitor = dynamic_cast<osgUtil::CullVisitor*>(nv);
|
||||
if (cullVisitor && _texture.valid() && _subgraph.valid())
|
||||
osgUtil::CullVisitor* cullVisitor = dynamic_cast<osgUtil::CullVisitor*>(nv);
|
||||
if (cullVisitor && _texture.valid() && _subgraph.valid())
|
||||
{
|
||||
_request_render_to_depth_texture(*node, *cullVisitor);
|
||||
}
|
||||
@@ -163,11 +163,11 @@ void RenderToTextureCallback::_request_render_to_depth_texture(osg::Node&, osgUt
|
||||
// set up lighting.
|
||||
// currently ignore lights in the scene graph itself..
|
||||
// will do later.
|
||||
osgUtil::RenderStage* previous_stage = cv.getCurrentRenderBin()->_stage;
|
||||
osgUtil::RenderStage* previous_stage = cv.getCurrentRenderBin()->getStage();
|
||||
|
||||
// set up the background color and clear mask.
|
||||
rtts->setClearMask(GL_DEPTH_BUFFER_BIT);
|
||||
rtts->_colorMask = new ColorMask(false, false, false, false);
|
||||
rtts->setColorMask(new ColorMask(false, false, false, false));
|
||||
|
||||
// set up to charge the same RenderStageLighting is the parent previous stage.
|
||||
rtts->setRenderStageLighting(previous_stage->getRenderStageLighting());
|
||||
@@ -219,7 +219,7 @@ void RenderToTextureCallback::_request_render_to_depth_texture(osg::Node&, osgUt
|
||||
// restore the previous renderbin.
|
||||
cv.setCurrentRenderBin(previousRenderBin);
|
||||
|
||||
if (rtts->_renderGraphList.size()==0 && rtts->_bins.size()==0)
|
||||
if (rtts->getRenderGraphList().size()==0 && rtts->getRenderBinList().size()==0)
|
||||
{
|
||||
// getting to this point means that all the subgraph has been
|
||||
// culled by small feature culling or is beyond LOD ranges.
|
||||
@@ -230,7 +230,7 @@ void RenderToTextureCallback::_request_render_to_depth_texture(osg::Node&, osgUt
|
||||
|
||||
// and the render to texture stage to the current stages
|
||||
// dependancy list.
|
||||
cv.getCurrentRenderBin()->_stage->addToDependencyList(rtts.get());
|
||||
cv.getCurrentRenderBin()->getStage()->addToDependencyList(rtts.get());
|
||||
|
||||
// if one exist attach texture to the RenderToTextureStage.
|
||||
rtts->setTexture(_texture.get());
|
||||
|
||||
@@ -185,7 +185,7 @@ void DistortionNode::preRender(osgUtil::CullVisitor& cv)
|
||||
// set up lighting.
|
||||
// currently ignore lights in the scene graph itself..
|
||||
// will do later.
|
||||
osgUtil::RenderStage* previous_stage = cv.getCurrentRenderBin()->_stage;
|
||||
osgUtil::RenderStage* previous_stage = cv.getCurrentRenderBin()->getStage();
|
||||
|
||||
// set up the background color and clear mask.
|
||||
rtts->setClearColor(osg::Vec4(0.1f,0.1f,0.3f,1.0f));
|
||||
@@ -216,7 +216,7 @@ void DistortionNode::preRender(osgUtil::CullVisitor& cv)
|
||||
// restore the previous renderbin.
|
||||
cv.setCurrentRenderBin(previousRenderBin);
|
||||
|
||||
if (rtts->_renderGraphList.size()==0 && rtts->_bins.size()==0)
|
||||
if (rtts->getRenderGraphList().size()==0 && rtts->getRenderBinList().size()==0)
|
||||
{
|
||||
// getting to this point means that all the subgraph has been
|
||||
// culled by small feature culling or is beyond LOD ranges.
|
||||
@@ -243,7 +243,7 @@ void DistortionNode::preRender(osgUtil::CullVisitor& cv)
|
||||
|
||||
// and the render to texture stage to the current stages
|
||||
// dependancy list.
|
||||
cv.getCurrentRenderBin()->_stage->addToDependencyList(rtts.get());
|
||||
cv.getCurrentRenderBin()->getStage()->addToDependencyList(rtts.get());
|
||||
|
||||
// if one exist attach texture to the RenderToTextureStage.
|
||||
if (_texture.valid()) rtts->setTexture(_texture.get());
|
||||
|
||||
@@ -100,7 +100,7 @@ void MyCullCallback::doPreRender(osg::Node&, osgUtil::CullVisitor& cv)
|
||||
// set up lighting.
|
||||
// currently ignore lights in the scene graph itself..
|
||||
// will do later.
|
||||
osgUtil::RenderStage* previous_stage = cv.getCurrentRenderBin()->_stage;
|
||||
osgUtil::RenderStage* previous_stage = cv.getCurrentRenderBin()->getStage();
|
||||
|
||||
// set up the background color and clear mask.
|
||||
rtts->setClearColor(osg::Vec4(0.1f,0.1f,0.3f,1.0f));
|
||||
@@ -159,7 +159,7 @@ void MyCullCallback::doPreRender(osg::Node&, osgUtil::CullVisitor& cv)
|
||||
// restore the previous renderbin.
|
||||
cv.setCurrentRenderBin(previousRenderBin);
|
||||
|
||||
if (rtts->_renderGraphList.size()==0 && rtts->_bins.size()==0)
|
||||
if (rtts->getRenderGraphList().size()==0 && rtts->getRenderBinList().size()==0)
|
||||
{
|
||||
// getting to this point means that all the subgraph has been
|
||||
// culled by small feature culling or is beyond LOD ranges.
|
||||
@@ -188,7 +188,7 @@ void MyCullCallback::doPreRender(osg::Node&, osgUtil::CullVisitor& cv)
|
||||
|
||||
// and the render to texture stage to the current stages
|
||||
// dependancy list.
|
||||
cv.getCurrentRenderBin()->_stage->addToDependencyList(rtts.get());
|
||||
cv.getCurrentRenderBin()->getStage()->addToDependencyList(rtts.get());
|
||||
|
||||
// if one exist attach texture to the RenderToTextureStage.
|
||||
if (_texture.valid()) rtts->setTexture(_texture.get());
|
||||
|
||||
@@ -163,7 +163,7 @@ void PrerenderCullCallback::doPreRender(osg::Node& /*node*/, osgUtil::CullVisito
|
||||
// set up lighting.
|
||||
// currently ignore lights in the scene graph itself..
|
||||
// will do later.
|
||||
osgUtil::RenderStage* previous_stage = cv.getCurrentRenderBin()->_stage;
|
||||
osgUtil::RenderStage* previous_stage = cv.getCurrentRenderBin()->getStage();
|
||||
|
||||
// set up the background color and clear mask.
|
||||
rtts->setClearColor(_clearColor);
|
||||
@@ -221,7 +221,7 @@ void PrerenderCullCallback::doPreRender(osg::Node& /*node*/, osgUtil::CullVisito
|
||||
// restore the previous renderbin.
|
||||
cv.setCurrentRenderBin(previousRenderBin);
|
||||
|
||||
if (rtts->_renderGraphList.size()==0 && rtts->_bins.size()==0)
|
||||
if (rtts->getRenderGraphList().size()==0 && rtts->getRenderBinList().size()==0)
|
||||
{
|
||||
// getting to this point means that all the subgraph has been
|
||||
// culled by small feature culling or is beyond LOD ranges.
|
||||
@@ -247,7 +247,7 @@ void PrerenderCullCallback::doPreRender(osg::Node& /*node*/, osgUtil::CullVisito
|
||||
|
||||
// and the render to texture stage to the current stages
|
||||
// dependancy list.
|
||||
cv.getCurrentRenderBin()->_stage->addToDependencyList(rtts.get());
|
||||
cv.getCurrentRenderBin()->getStage()->addToDependencyList(rtts.get());
|
||||
|
||||
// if one exist attach image to the RenderToTextureStage.
|
||||
// if (image.valid()) rtts->setImage(_image.get());
|
||||
|
||||
@@ -79,11 +79,11 @@ void CreateShadowTextureCullCallback::doPreRender(osg::Node& node, osgUtil::Cull
|
||||
// set up lighting.
|
||||
// currently ignore lights in the scene graph itself..
|
||||
// will do later.
|
||||
osgUtil::RenderStage* previous_stage = cv.getCurrentRenderBin()->_stage;
|
||||
osgUtil::RenderStage* previous_stage = cv.getCurrentRenderBin()->getStage();
|
||||
|
||||
// set up the background color and clear mask.
|
||||
rtts->setClearColor(osg::Vec4(1.0f,1.0f,1.0f,1.0f));
|
||||
rtts->setClearMask(previous_stage->getClearMask());
|
||||
//rtts->setClearMask(previous_stage->getClearMask());
|
||||
|
||||
// set up to charge the same RenderStageLighting is the parent previous stage.
|
||||
rtts->setRenderStageLighting(previous_stage->getRenderStageLighting());
|
||||
@@ -160,7 +160,7 @@ void CreateShadowTextureCullCallback::doPreRender(osg::Node& node, osgUtil::Cull
|
||||
// restore the previous renderbin.
|
||||
cv.setCurrentRenderBin(previousRenderBin);
|
||||
|
||||
if (rtts->_renderGraphList.size()==0 && rtts->_bins.size()==0)
|
||||
if (rtts->getRenderGraphList().size()==0 && rtts->getRenderBinList().size()==0)
|
||||
{
|
||||
// getting to this point means that all the shadower has been
|
||||
// culled by small feature culling or is beyond LOD ranges.
|
||||
@@ -189,7 +189,7 @@ void CreateShadowTextureCullCallback::doPreRender(osg::Node& node, osgUtil::Cull
|
||||
|
||||
// and the render to texture stage to the current stages
|
||||
// dependancy list.
|
||||
cv.getCurrentRenderBin()->_stage->addToDependencyList(rtts.get());
|
||||
cv.getCurrentRenderBin()->getStage()->addToDependencyList(rtts.get());
|
||||
|
||||
// if one exist attach texture to the RenderToTextureStage.
|
||||
if (_texture.valid()) rtts->setTexture(_texture.get());
|
||||
|
||||
@@ -107,7 +107,7 @@ class OSGUTIL_EXPORT CullVisitor : public osg::NodeVisitor, public osg::CullStac
|
||||
{
|
||||
if (_currentRenderGraph->_stateset->useRenderBinDetails())
|
||||
{
|
||||
_currentRenderBin = _currentRenderBin->_parent;
|
||||
_currentRenderBin = _currentRenderBin->getParent();
|
||||
}
|
||||
_currentRenderGraph = _currentRenderGraph->_parent;
|
||||
}
|
||||
@@ -351,13 +351,13 @@ inline void CullVisitor::addDrawableAndDepth(osg::Drawable* drawable,osg::RefMat
|
||||
/** Add an attribute which is positioned related to the modelview matrix.*/
|
||||
inline void CullVisitor::addPositionedAttribute(osg::RefMatrix* matrix,const osg::StateAttribute* attr)
|
||||
{
|
||||
_currentRenderBin->_stage->addPositionedAttribute(matrix,attr);
|
||||
_currentRenderBin->getStage()->addPositionedAttribute(matrix,attr);
|
||||
}
|
||||
|
||||
/** Add an attribute which is positioned related to the modelview matrix.*/
|
||||
inline void CullVisitor::addPositionedTextureAttribute(unsigned int textureUnit, osg::RefMatrix* matrix,const osg::StateAttribute* attr)
|
||||
{
|
||||
_currentRenderBin->_stage->addPositionedTextureAttribute(textureUnit,matrix,attr);
|
||||
_currentRenderBin->getStage()->addPositionedTextureAttribute(textureUnit,matrix,attr);
|
||||
}
|
||||
|
||||
inline RenderLeaf* CullVisitor::createOrReuseRenderLeaf(osg::Drawable* drawable,osg::RefMatrix* projection,osg::RefMatrix* matrix, float depth)
|
||||
|
||||
@@ -62,6 +62,22 @@ class OSGUTIL_EXPORT RenderBin : public osg::Object
|
||||
|
||||
virtual void reset();
|
||||
|
||||
RenderBin* getParent() { return _parent; }
|
||||
const RenderBin* getParent() const { return _parent; }
|
||||
|
||||
RenderStage* getStage() { return _stage; }
|
||||
const RenderStage* getStage() const { return _stage; }
|
||||
|
||||
RenderGraphList& getRenderGraphList() { return _renderGraphList; }
|
||||
const RenderGraphList& getRenderGraphList() const { return _renderGraphList; }
|
||||
|
||||
RenderBinList& getRenderBinList() { return _bins; }
|
||||
const RenderBinList& getRenderBinList() const { return _bins; }
|
||||
|
||||
RenderLeafList& getRenderLeafList() { return _renderLeafList; }
|
||||
const RenderLeafList& getRenderLeafList() const { return _renderLeafList; }
|
||||
|
||||
|
||||
RenderBin* find_or_insert(int binNum,const std::string& binName);
|
||||
|
||||
void addRenderGraph(RenderGraph* rg)
|
||||
@@ -104,16 +120,16 @@ class OSGUTIL_EXPORT RenderBin : public osg::Object
|
||||
DrawCallback* getDrawCallback() { return _drawCallback.get(); }
|
||||
const DrawCallback* getDrawCallback() const { return _drawCallback.get(); }
|
||||
|
||||
|
||||
|
||||
/** extract stats for current draw list. */
|
||||
bool getStats(Statistics* primStats);
|
||||
void getPrims(Statistics* primStats);
|
||||
bool getPrims(Statistics* primStats, int nbin);
|
||||
|
||||
#ifndef USE_DEPRECATED_API
|
||||
protected:
|
||||
#endif
|
||||
|
||||
public:
|
||||
|
||||
virtual ~RenderBin();
|
||||
|
||||
void copyLeavesFromRenderGraphListToRenderLeafList();
|
||||
|
||||
@@ -130,9 +146,6 @@ class OSGUTIL_EXPORT RenderBin : public osg::Object
|
||||
|
||||
osg::ref_ptr<DrawCallback> _drawCallback;
|
||||
|
||||
protected:
|
||||
|
||||
virtual ~RenderBin();
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -133,8 +133,12 @@ class OSGUTIL_EXPORT RenderStage : public RenderBin
|
||||
/** extract stats for current draw list. */
|
||||
bool getStats(Statistics* primStats);
|
||||
|
||||
public:
|
||||
#ifndef USE_DEPRECATED_API
|
||||
protected:
|
||||
#endif
|
||||
|
||||
virtual ~RenderStage();
|
||||
|
||||
typedef std::vector< osg::ref_ptr<RenderStage> > DependencyList;
|
||||
|
||||
bool _stageDrawnThisFrame;
|
||||
@@ -152,9 +156,7 @@ class OSGUTIL_EXPORT RenderStage : public RenderBin
|
||||
|
||||
mutable osg::ref_ptr<RenderStageLighting> _renderStageLighting;
|
||||
|
||||
protected:
|
||||
|
||||
virtual ~RenderStage();
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -131,15 +131,8 @@ class OSGUTIL_EXPORT SceneView : public osg::Referenced, public osg::CullSetting
|
||||
osg::StateSet* getLocalStateSet() { return _localStateSet.get(); }
|
||||
const osg::StateSet* getLocalStateSet() const { return _localStateSet.get(); }
|
||||
|
||||
#if 1
|
||||
typedef Options LightingMode;
|
||||
#else
|
||||
enum LightingMode {
|
||||
HEADLIGHT, // default
|
||||
SKY_LIGHT,
|
||||
NO_SCENEVIEW_LIGHT
|
||||
};
|
||||
#endif
|
||||
|
||||
void setLightingMode(LightingMode mode) { _lightingMode=mode; }
|
||||
LightingMode getLightingMode() const { return _lightingMode; }
|
||||
|
||||
|
||||
@@ -1202,7 +1202,7 @@ ImpostorSprite* CullVisitor::createImpostorSprite(Impostor& node)
|
||||
// set up lighting.
|
||||
// currently ignore lights in the scene graph itself..
|
||||
// will do later.
|
||||
RenderStage* previous_stage = _currentRenderBin->_stage;
|
||||
RenderStage* previous_stage = _currentRenderBin->getStage();
|
||||
|
||||
// set up the background color and clear mask.
|
||||
osg::Vec4 clear_color = previous_stage->getClearColor();
|
||||
@@ -1330,7 +1330,7 @@ ImpostorSprite* CullVisitor::createImpostorSprite(Impostor& node)
|
||||
|
||||
|
||||
|
||||
if (rtts->_renderGraphList.size()==0 && rtts->_bins.size()==0)
|
||||
if (rtts->getRenderGraphList().size()==0 && rtts->getRenderBinList().size()==0)
|
||||
{
|
||||
// getting to this point means that all the subgraph has been
|
||||
// culled by small feature culling or is beyond LOD ranges.
|
||||
@@ -1475,7 +1475,7 @@ ImpostorSprite* CullVisitor::createImpostorSprite(Impostor& node)
|
||||
|
||||
// and the render to texture stage to the current stages
|
||||
// dependancy list.
|
||||
_currentRenderBin->_stage->addToDependencyList(rtts.get());
|
||||
_currentRenderBin->getStage()->addToDependencyList(rtts.get());
|
||||
|
||||
// attach texture to the RenderToTextureStage.
|
||||
rtts->setTexture(texture);
|
||||
|
||||
Reference in New Issue
Block a user