Added handling of vertex buffer objects into osg::Geometry copy constructor.
This commit is contained in:
parent
ea98b1a9f8
commit
b622a99178
@ -64,6 +64,9 @@ class OSG_EXPORT CopyOp
|
||||
inline CopyOp(CopyFlags flags=SHALLOW_COPY):_flags(flags) {}
|
||||
virtual ~CopyOp() {}
|
||||
|
||||
void setCopyFlags(CopyFlags flags) { _flags = flags; }
|
||||
CopyFlags getCopyFlags() const { return _flags; }
|
||||
|
||||
virtual Referenced* operator() (const Referenced* ref) const;
|
||||
virtual Object* operator() (const Object* obj) const;
|
||||
virtual Node* operator() (const Node* node) const;
|
||||
|
@ -79,6 +79,18 @@ Geometry::Geometry(const Geometry& geometry,const CopyOp& copyop):
|
||||
{
|
||||
_vertexAttribList.push_back(ArrayData(*vitr, copyop));
|
||||
}
|
||||
|
||||
if ((copyop.getCopyFlags() & osg::CopyOp::DEEP_COPY_ARRAYS))
|
||||
{
|
||||
if (_useVertexBufferObjects)
|
||||
{
|
||||
// copying of arrays doesn't set up buffer objects so we'll need to force
|
||||
// Geometry to assign these, we'll do this by switching off VBO's then renabling them.
|
||||
setUseVertexBufferObjects(false);
|
||||
setUseVertexBufferObjects(true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Geometry::~Geometry()
|
||||
|
Loading…
Reference in New Issue
Block a user