]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/material/EffectGeode.cxx
Effects in models working for transparent materials and chrome animation
[simgear.git] / simgear / scene / material / EffectGeode.cxx
index 799b567c76a8adf5b7399ae1c8cab6cdd265051a..aff9aebc4469c077f69952db4010199d68a49380 100644 (file)
@@ -38,10 +38,18 @@ EffectGeode::EffectGeode()
 {
 }
 
-EffectGeode::EffectGeode(const EffectGeode& rhs, const CopyOp& copyop) :
-    Geode(rhs, copyop)
+EffectGeode::EffectGeode(const EffectGeode& rhs, const osg::CopyOp& copyop) :
+    Geode(rhs, copyop),
+    _effect(static_cast<Effect*>(copyop(rhs._effect.get())))
 {
-    _effect = static_cast<Effect*>(rhs._effect->clone(copyop));
+}
+
+void EffectGeode::setEffect(Effect* effect)
+{
+    _effect = effect;
+    if (!_effect)
+        return;
+    addUpdateCallback(new Effect::InitializeCallback);
 }
 
 void EffectGeode::resizeGLObjectBuffers(unsigned int maxSize)