Added support for setting the default render bin sort mode via the
env OSG_DEFAULT_BIN_SORT_MODE variable or via or RenderBin::setDefaultRenderBinSortMode() method.
This commit is contained in:
@@ -38,21 +38,26 @@ class OSGUTIL_EXPORT RenderBin : public osg::Object
|
||||
typedef std::vector<RenderGraph*> RenderGraphList;
|
||||
typedef std::map< int, osg::ref_ptr<RenderBin> > RenderBinList;
|
||||
|
||||
enum SortMode
|
||||
{
|
||||
SORT_BY_STATE,
|
||||
SORT_BY_STATE_THEN_FRONT_TO_BACK,
|
||||
SORT_FRONT_TO_BACK,
|
||||
SORT_BACK_TO_FRONT
|
||||
};
|
||||
|
||||
// static methods.
|
||||
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);
|
||||
|
||||
enum SortMode
|
||||
{
|
||||
SORT_BY_STATE,
|
||||
SORT_FRONT_TO_BACK,
|
||||
SORT_BACK_TO_FRONT
|
||||
};
|
||||
|
||||
static void setDefaultRenderBinSortMode(SortMode mode);
|
||||
static SortMode getDefaultRenderBinSortMode();
|
||||
|
||||
|
||||
RenderBin(SortMode mode=SORT_BY_STATE);
|
||||
|
||||
RenderBin(SortMode mode=getDefaultRenderBinSortMode());
|
||||
|
||||
/** Copy constructor using CopyOp to manage deep vs shallow copy.*/
|
||||
RenderBin(const RenderBin& rhs,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
|
||||
@@ -98,6 +103,7 @@ class OSGUTIL_EXPORT RenderBin : public osg::Object
|
||||
SortMode getSortMode() const { return _sortMode; }
|
||||
|
||||
virtual void sortByState();
|
||||
virtual void sortByStateThenFrontToBack();
|
||||
virtual void sortFrontToBack();
|
||||
virtual void sortBackToFront();
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ class OSGUTIL_EXPORT RenderStage : public RenderBin
|
||||
public:
|
||||
|
||||
|
||||
RenderStage(SortMode mode=SORT_BY_STATE);
|
||||
RenderStage(SortMode mode=getDefaultRenderBinSortMode());
|
||||
|
||||
RenderStage(const RenderStage& rhs,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user