From Marc Helbling, "please find the mergeTriangleStrip code merged in osgUtil::TriStripVisitor.
I've removed the references to DrawArrays as we should no longer produce any. Note that: * as the name suggest, it only works for triangle strips but could probably be easily extended to quads * the resulting primitive is not highly optimized; we could probably sort the strips in order to minimize the number of primitive restart * as we may merge DrawElementsUInt and DrawElementUShort, the code will only generate DrawElementsUInt" git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14602 16af8721-9629-0410-8352-f15c8da7e697
This commit is contained in:
@@ -36,7 +36,8 @@ class OSGUTIL_EXPORT TriStripVisitor : public BaseOptimizerVisitor
|
||||
BaseOptimizerVisitor( optimizer, Optimizer::TRISTRIP_GEOMETRY),
|
||||
_cacheSize( 16 ),
|
||||
_minStripSize( 2 ),
|
||||
_generateFourPointPrimitivesQuads ( false)
|
||||
_generateFourPointPrimitivesQuads ( false ),
|
||||
_mergeTriangleStrips( false )
|
||||
{}
|
||||
|
||||
/** Convert mesh primitives in Geometry into Tri Strips.
|
||||
@@ -45,6 +46,8 @@ class OSGUTIL_EXPORT TriStripVisitor : public BaseOptimizerVisitor
|
||||
*/
|
||||
void stripify(osg::Geometry& drawable);
|
||||
|
||||
void mergeTriangleStrips(osg::Geometry::PrimitiveSetList& primitives);
|
||||
|
||||
/** Stripify (make into strips of tria or quads) the accumulated list of Geometry drawables.*/
|
||||
void stripify();
|
||||
|
||||
@@ -75,6 +78,8 @@ class OSGUTIL_EXPORT TriStripVisitor : public BaseOptimizerVisitor
|
||||
void setGenerateFourPointPrimitivesQuads(bool flag) { _generateFourPointPrimitivesQuads = flag; }
|
||||
bool getGenerateFourPointPrimitivesQuads() const { return _generateFourPointPrimitivesQuads; }
|
||||
|
||||
void setMergeTriangleStrips(bool flag) { _mergeTriangleStrips = flag; }
|
||||
bool getMergeTriangleStrips() const { return _mergeTriangleStrips; }
|
||||
|
||||
private:
|
||||
|
||||
@@ -84,6 +89,7 @@ class OSGUTIL_EXPORT TriStripVisitor : public BaseOptimizerVisitor
|
||||
unsigned int _minStripSize;
|
||||
GeometryList _geometryList;
|
||||
bool _generateFourPointPrimitivesQuads;
|
||||
bool _mergeTriangleStrips;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user