Public Types | |
enum | SortMode { SORT_BY_STATE, SORT_BY_STATE_THEN_FRONT_TO_BACK, SORT_FRONT_TO_BACK, SORT_BACK_TO_FRONT } |
typedef std::vector < RenderLeaf * > | RenderLeafList |
typedef std::vector < StateGraph * > | StateGraphList |
typedef std::map < int, osg::ref_ptr < RenderBin > > | RenderBinList |
Public Member Functions | |
RenderBin () | |
RenderBin (SortMode mode) | |
RenderBin (const RenderBin &rhs, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
Copy constructor using CopyOp to manage deep vs shallow copy. | |
virtual osg::Object * | cloneType () const |
Clone the type of an object, with Object* return type. | |
virtual osg::Object * | clone (const osg::CopyOp ©op) const |
Clone an object, with Object* return type. | |
virtual bool | isSameKindAs (const osg::Object *obj) const |
virtual const char * | libraryName () const |
return the name of the object's library. | |
virtual const char * | className () const |
return the name of the object's class type. | |
virtual void | reset () |
void | setStateSet (osg::StateSet *stateset) |
osg::StateSet * | getStateSet () |
const osg::StateSet * | getStateSet () const |
RenderBin * | getParent () |
const RenderBin * | getParent () const |
RenderStage * | getStage () |
const RenderStage * | getStage () const |
int | getBinNum () const |
StateGraphList & | getStateGraphList () |
const StateGraphList & | getStateGraphList () const |
RenderBinList & | getRenderBinList () |
const RenderBinList & | getRenderBinList () const |
RenderLeafList & | getRenderLeafList () |
const RenderLeafList & | getRenderLeafList () const |
RenderBin * | find_or_insert (int binNum, const std::string &binName) |
void | addStateGraph (StateGraph *rg) |
virtual void | sort () |
virtual void | sortImplementation () |
void | setSortMode (SortMode mode) |
SortMode | getSortMode () const |
virtual void | sortByState () |
virtual void | sortByStateThenFrontToBack () |
virtual void | sortFrontToBack () |
virtual void | sortBackToFront () |
void | setSortCallback (SortCallback *sortCallback) |
SortCallback * | getSortCallback () |
const SortCallback * | getSortCallback () const |
virtual void | draw (osg::RenderInfo &renderInfo, RenderLeaf *&previous) |
virtual void | drawImplementation (osg::RenderInfo &renderInfo, RenderLeaf *&previous) |
void | setDrawCallback (DrawCallback *drawCallback) |
DrawCallback * | getDrawCallback () |
const DrawCallback * | getDrawCallback () const |
bool | getStats (Statistics &primStats) const |
Extract stats for current draw list. | |
virtual unsigned int | computeNumberOfDynamicRenderLeaves () const |
Compute the number of dynamic RenderLeaves. | |
void | copyLeavesFromStateGraphListToRenderLeafList () |
Static Public Member Functions | |
static RenderBin * | createRenderBin (const std::string &binName) |
static RenderBin * | getRenderBinPrototype (const std::string &binName) |
static void | addRenderBinPrototype (const std::string &binName, RenderBin *proto) |
static void | removeRenderBinPrototype (RenderBin *proto) |
static void | setDefaultRenderBinSortMode (SortMode mode) |
static SortMode | getDefaultRenderBinSortMode () |
Protected Member Functions | |
virtual | ~RenderBin () |
Protected Attributes | |
int | _binNum |
RenderBin * | _parent |
RenderStage * | _stage |
RenderBinList | _bins |
StateGraphList | _stateGraphList |
RenderLeafList | _renderLeafList |
bool | _sorted |
SortMode | _sortMode |
osg::ref_ptr < SortCallback > | _sortCallback |
osg::ref_ptr < DrawCallback > | _drawCallback |
osg::ref_ptr < osg::StateSet > | _stateset |
Classes | |
struct | DrawCallback |
struct | SortCallback |
Renderbin contains geometries to be rendered as a group, renderbins are rendered once each. They can improve efficiency or use different rendering algorithms. A renderBin can contain further renderBins producing a tree hierarchy of renderBins.
typedef std::vector<RenderLeaf*> osgUtil::RenderBin::RenderLeafList |
typedef std::vector<StateGraph*> osgUtil::RenderBin::StateGraphList |
typedef std::map< int, osg::ref_ptr<RenderBin> > osgUtil::RenderBin::RenderBinList |
osgUtil::RenderBin::RenderBin | ( | ) |
osgUtil::RenderBin::RenderBin | ( | SortMode | mode | ) |
osgUtil::RenderBin::RenderBin | ( | const RenderBin & | rhs, | |
const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY | |||
) |
Copy constructor using CopyOp to manage deep vs shallow copy.
virtual osgUtil::RenderBin::~RenderBin | ( | ) | [protected, virtual] |
static RenderBin* osgUtil::RenderBin::createRenderBin | ( | const std::string & | binName | ) | [static] |
static RenderBin* osgUtil::RenderBin::getRenderBinPrototype | ( | const std::string & | binName | ) | [static] |
static void osgUtil::RenderBin::addRenderBinPrototype | ( | const std::string & | binName, | |
RenderBin * | proto | |||
) | [static] |
static void osgUtil::RenderBin::removeRenderBinPrototype | ( | RenderBin * | proto | ) | [static] |
static void osgUtil::RenderBin::setDefaultRenderBinSortMode | ( | SortMode | mode | ) | [static] |
static SortMode osgUtil::RenderBin::getDefaultRenderBinSortMode | ( | ) | [static] |
virtual osg::Object* osgUtil::RenderBin::cloneType | ( | ) | const [inline, virtual] |
Clone the type of an object, with Object* return type.
Must be defined by derived classes.
Implements osg::Object.
Reimplemented in osgUtil::RenderStage.
virtual osg::Object* osgUtil::RenderBin::clone | ( | const osg::CopyOp & | ) | const [inline, virtual] |
Clone an object, with Object* return type.
Must be defined by derived classes.
Implements osg::Object.
Reimplemented in osgUtil::RenderStage.
virtual bool osgUtil::RenderBin::isSameKindAs | ( | const osg::Object * | obj | ) | const [inline, virtual] |
virtual const char* osgUtil::RenderBin::libraryName | ( | ) | const [inline, virtual] |
return the name of the object's library.
Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name.
Implements osg::Object.
virtual const char* osgUtil::RenderBin::className | ( | ) | const [inline, virtual] |
return the name of the object's class type.
Must be defined by derived classes.
Implements osg::Object.
Reimplemented in osgUtil::RenderStage.
virtual void osgUtil::RenderBin::reset | ( | ) | [virtual] |
Reimplemented in osgUtil::RenderStage.
void osgUtil::RenderBin::setStateSet | ( | osg::StateSet * | stateset | ) | [inline] |
osg::StateSet* osgUtil::RenderBin::getStateSet | ( | ) | [inline] |
const osg::StateSet* osgUtil::RenderBin::getStateSet | ( | ) | const [inline] |
RenderBin* osgUtil::RenderBin::getParent | ( | ) | [inline] |
const RenderBin* osgUtil::RenderBin::getParent | ( | ) | const [inline] |
RenderStage* osgUtil::RenderBin::getStage | ( | ) | [inline] |
const RenderStage* osgUtil::RenderBin::getStage | ( | ) | const [inline] |
int osgUtil::RenderBin::getBinNum | ( | ) | const [inline] |
StateGraphList& osgUtil::RenderBin::getStateGraphList | ( | ) | [inline] |
const StateGraphList& osgUtil::RenderBin::getStateGraphList | ( | ) | const [inline] |
RenderBinList& osgUtil::RenderBin::getRenderBinList | ( | ) | [inline] |
const RenderBinList& osgUtil::RenderBin::getRenderBinList | ( | ) | const [inline] |
RenderLeafList& osgUtil::RenderBin::getRenderLeafList | ( | ) | [inline] |
const RenderLeafList& osgUtil::RenderBin::getRenderLeafList | ( | ) | const [inline] |
RenderBin* osgUtil::RenderBin::find_or_insert | ( | int | binNum, | |
const std::string & | binName | |||
) |
void osgUtil::RenderBin::addStateGraph | ( | StateGraph * | rg | ) | [inline] |
virtual void osgUtil::RenderBin::sort | ( | ) | [virtual] |
Reimplemented in osgUtil::RenderStage.
virtual void osgUtil::RenderBin::sortImplementation | ( | ) | [virtual] |
void osgUtil::RenderBin::setSortMode | ( | SortMode | mode | ) |
SortMode osgUtil::RenderBin::getSortMode | ( | ) | const [inline] |
virtual void osgUtil::RenderBin::sortByState | ( | ) | [virtual] |
virtual void osgUtil::RenderBin::sortByStateThenFrontToBack | ( | ) | [virtual] |
virtual void osgUtil::RenderBin::sortFrontToBack | ( | ) | [virtual] |
virtual void osgUtil::RenderBin::sortBackToFront | ( | ) | [virtual] |
void osgUtil::RenderBin::setSortCallback | ( | SortCallback * | sortCallback | ) | [inline] |
SortCallback* osgUtil::RenderBin::getSortCallback | ( | ) | [inline] |
const SortCallback* osgUtil::RenderBin::getSortCallback | ( | ) | const [inline] |
virtual void osgUtil::RenderBin::draw | ( | osg::RenderInfo & | renderInfo, | |
RenderLeaf *& | previous | |||
) | [virtual] |
Reimplemented in osgUtil::RenderStage.
virtual void osgUtil::RenderBin::drawImplementation | ( | osg::RenderInfo & | renderInfo, | |
RenderLeaf *& | previous | |||
) | [virtual] |
Reimplemented in osgUtil::RenderStage.
void osgUtil::RenderBin::setDrawCallback | ( | DrawCallback * | drawCallback | ) | [inline] |
DrawCallback* osgUtil::RenderBin::getDrawCallback | ( | ) | [inline] |
const DrawCallback* osgUtil::RenderBin::getDrawCallback | ( | ) | const [inline] |
bool osgUtil::RenderBin::getStats | ( | Statistics & | primStats | ) | const |
virtual unsigned int osgUtil::RenderBin::computeNumberOfDynamicRenderLeaves | ( | ) | const [virtual] |
void osgUtil::RenderBin::copyLeavesFromStateGraphListToRenderLeafList | ( | ) |
int osgUtil::RenderBin::_binNum [protected] |
RenderBin* osgUtil::RenderBin::_parent [protected] |
RenderStage* osgUtil::RenderBin::_stage [protected] |
RenderBinList osgUtil::RenderBin::_bins [protected] |
StateGraphList osgUtil::RenderBin::_stateGraphList [protected] |
RenderLeafList osgUtil::RenderBin::_renderLeafList [protected] |
bool osgUtil::RenderBin::_sorted [protected] |
SortMode osgUtil::RenderBin::_sortMode [protected] |
osg::ref_ptr<SortCallback> osgUtil::RenderBin::_sortCallback [protected] |
osg::ref_ptr<DrawCallback> osgUtil::RenderBin::_drawCallback [protected] |
osg::ref_ptr<osg::StateSet> osgUtil::RenderBin::_stateset [protected] |