14 #ifndef OSGUTIL_RENDERBIN
15 #define OSGUTIL_RENDERBIN 1
17 #include <osgUtil/StateGraph>
51 static RenderBin* createRenderBin(
const std::string& binName);
52 static RenderBin* getRenderBinPrototype(
const std::string& binName);
53 static void addRenderBinPrototype(
const std::string& binName,
RenderBin* proto);
54 static void removeRenderBinPrototype(
RenderBin* proto);
56 static void setDefaultRenderBinSortMode(SortMode mode);
57 static SortMode getDefaultRenderBinSortMode();
72 virtual const char*
className()
const {
return "RenderBin"; }
99 RenderBin* find_or_insert(
int binNum,
const std::string& binName);
103 _stateGraphList.push_back(rg);
108 virtual void sortImplementation();
110 void setSortMode(SortMode mode);
113 virtual void sortByState();
114 virtual void sortByStateThenFrontToBack();
115 virtual void sortFrontToBack();
116 virtual void sortBackToFront();
117 virtual void sortTraversalOrder();
121 virtual void sortImplementation(
RenderBin*) = 0;
147 virtual unsigned int computeNumberOfDynamicRenderLeaves()
const;
149 void copyLeavesFromStateGraphListToRenderLeafList();
154 virtual void releaseGLObjects(
osg::State* state= 0)
const;
SortMode getSortMode() const
StateGraphList & getStateGraphList()
const RenderLeafList & getRenderLeafList() const
virtual const char * className() const
RenderLeafList _renderLeafList
virtual osg::Object * cloneType() const
std::map< int, osg::ref_ptr< RenderBin > > RenderBinList
std::vector< RenderLeaf * > RenderLeafList
void setSortCallback(SortCallback *sortCallback)
DrawCallback * getDrawCallback()
const RenderStage * getStage() const
void setStateSet(osg::StateSet *stateset)
virtual osg::Object * clone(const osg::CopyOp ©op) const
const SortCallback * getSortCallback() const
virtual const char * libraryName() const
RenderBinList & getRenderBinList()
StateGraphList _stateGraphList
osg::ref_ptr< osg::StateSet > _stateset
osg::ref_ptr< SortCallback > _sortCallback
virtual bool isSameKindAs(const osg::Object *obj) const
void addStateGraph(StateGraph *rg)
osg::ref_ptr< DrawCallback > _drawCallback
const StateGraphList & getStateGraphList() const
RenderLeafList & getRenderLeafList()
const osg::StateSet * getStateSet() const
SortCallback * getSortCallback()
const DrawCallback * getDrawCallback() const
void setDrawCallback(DrawCallback *drawCallback)
const RenderBinList & getRenderBinList() const
const RenderBin * getParent() const
std::vector< StateGraph * > StateGraphList
osg::StateSet * getStateSet()
Shader generator framework.