From Alexander Irion, "When a osg::Geometry node is loaded from a ".osgb" file, there is no element buffer object created for the primitives element indices, although _useVertexBufferObjects is enabled. This bug decreases the rendering performance."
This commit is contained in:
parent
7b0a500ffc
commit
cc93824605
@ -227,7 +227,8 @@ class OSG_EXPORT Geometry : public Drawable
|
||||
|
||||
typedef std::vector< ref_ptr<PrimitiveSet> > PrimitiveSetList;
|
||||
|
||||
void setPrimitiveSetList(const PrimitiveSetList& primitives) { _primitives = primitives; dirtyDisplayList(); dirtyBound(); }
|
||||
void setPrimitiveSetList(const PrimitiveSetList& primitives);
|
||||
|
||||
PrimitiveSetList& getPrimitiveSetList() { return _primitives; }
|
||||
const PrimitiveSetList& getPrimitiveSetList() const { return _primitives; }
|
||||
|
||||
|
@ -509,6 +509,20 @@ bool Geometry::insertPrimitiveSet(unsigned int i,PrimitiveSet* primitiveset)
|
||||
return false;
|
||||
}
|
||||
|
||||
void Geometry::setPrimitiveSetList(const PrimitiveSetList& primitives)
|
||||
{
|
||||
_primitives = primitives;
|
||||
if (_useVertexBufferObjects)
|
||||
{
|
||||
for (unsigned int primitiveSetIndex=0;primitiveSetIndex<_primitives.size();++primitiveSetIndex)
|
||||
{
|
||||
addElementBufferObjectIfRequired(_primitives[primitiveSetIndex]);
|
||||
}
|
||||
|
||||
}
|
||||
dirtyDisplayList(); dirtyBound();
|
||||
}
|
||||
|
||||
bool Geometry::removePrimitiveSet(unsigned int i, unsigned int numElementsToRemove)
|
||||
{
|
||||
if (numElementsToRemove==0) return false;
|
||||
|
Loading…
Reference in New Issue
Block a user