mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-20 06:53:52 +00:00
Do not deep copy PrimitiveSets when build with OSG 3.5
This commit is contained in:
parent
c312162b57
commit
054c3eb24e
1 changed files with 4 additions and 2 deletions
|
@ -1,6 +1,7 @@
|
||||||
#include "clone.hpp"
|
#include "clone.hpp"
|
||||||
|
|
||||||
#include <osg/StateSet>
|
#include <osg/StateSet>
|
||||||
|
#include <osg/Version>
|
||||||
|
|
||||||
#include <osgParticle/ParticleProcessor>
|
#include <osgParticle/ParticleProcessor>
|
||||||
#include <osgParticle/ParticleSystemUpdater>
|
#include <osgParticle/ParticleSystemUpdater>
|
||||||
|
@ -53,6 +54,7 @@ namespace SceneUtil
|
||||||
osg::CopyOp copyop = *this;
|
osg::CopyOp copyop = *this;
|
||||||
copyop.setCopyFlags(copyop.getCopyFlags()|osg::CopyOp::DEEP_COPY_ARRAYS);
|
copyop.setCopyFlags(copyop.getCopyFlags()|osg::CopyOp::DEEP_COPY_ARRAYS);
|
||||||
|
|
||||||
|
#if OSG_VERSION_LESS_THAN(3,5,0)
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Deep copy of primitives required to work around the following (bad?) code in osg::Geometry copy constructor:
|
Deep copy of primitives required to work around the following (bad?) code in osg::Geometry copy constructor:
|
||||||
|
@ -71,12 +73,12 @@ namespace SceneUtil
|
||||||
In case of DEEP_COPY_PRIMITIVES=Off, DEEP_COPY_ARRAYS=On, the above code makes a modification to the original const Geometry& we copied from,
|
In case of DEEP_COPY_PRIMITIVES=Off, DEEP_COPY_ARRAYS=On, the above code makes a modification to the original const Geometry& we copied from,
|
||||||
causing problems if we relied on the original Geometry to remain static such as when it was added to an osgUtil::IncrementalCompileOperation.
|
causing problems if we relied on the original Geometry to remain static such as when it was added to an osgUtil::IncrementalCompileOperation.
|
||||||
|
|
||||||
Possible fix submitted to osg-submissions ( http://forum.openscenegraph.org/viewtopic.php?t=15217 ).
|
Fixed in OSG 3.5 ( http://forum.openscenegraph.org/viewtopic.php?t=15217 ).
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
copyop.setCopyFlags(copyop.getCopyFlags()|osg::CopyOp::DEEP_COPY_PRIMITIVES);
|
copyop.setCopyFlags(copyop.getCopyFlags()|osg::CopyOp::DEEP_COPY_PRIMITIVES);
|
||||||
|
#endif
|
||||||
|
|
||||||
osg::Drawable* cloned = osg::clone(drawable, copyop);
|
osg::Drawable* cloned = osg::clone(drawable, copyop);
|
||||||
if (cloned->getUpdateCallback())
|
if (cloned->getUpdateCallback())
|
||||||
|
|
Loading…
Reference in a new issue