]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/util/SGSceneFeatures.cxx
Work around apparent OSG 3.2.0 normal binding bug.
[simgear.git] / simgear / scene / util / SGSceneFeatures.cxx
index 7cc712626bf9216512e86e196c8365534608058f..4367e453926ddbde2f390af6662c1300ebde3644 100644 (file)
 #include <osg/PointSprite>
 #include <osg/Texture>
 
+#include <OpenThreads/Mutex>
+#include <OpenThreads/ScopedLock>
+
 #include <simgear/structure/SGSharedPtr.hxx>
-#include <simgear/threads/SGThread.hxx>
-#include <simgear/threads/SGGuard.hxx>
 
 SGSceneFeatures::SGSceneFeatures() :
   _textureCompression(UseARBCompression),
   _shaderLights(true),
   _pointSpriteLights(true),
-  _distanceAttenuationLights(true)
+  _distanceAttenuationLights(true),
+  _textureFilter(1)
 {
 }
 
+static OpenThreads::Mutex mutexSGSceneFeatures_instance;
 SGSceneFeatures*
 SGSceneFeatures::instance()
 {
   static SGSharedPtr<SGSceneFeatures> sceneFeatures;
   if (sceneFeatures)
     return sceneFeatures;
-  static SGMutex mutex;
-  SGGuard<SGMutex> guard(mutex);
+  OpenThreads::ScopedLock<OpenThreads::Mutex> lock(mutexSGSceneFeatures_instance);
   if (sceneFeatures)
     return sceneFeatures;
   sceneFeatures = new SGSceneFeatures;