]> git.mxchange.org Git - simgear.git/commitdiff
Modified Files:
authorfrohlich <frohlich>
Fri, 8 Jun 2007 06:50:16 +0000 (06:50 +0000)
committerfrohlich <frohlich>
Fri, 8 Jun 2007 06:50:16 +0000 (06:50 +0000)
simgear/scene/material/mat.cxx simgear/scene/material/mat.hxx
simgear/scene/util/SGSceneFeatures.cxx
simgear/scene/util/SGSceneFeatures.hxx:
Olaf Flebbe: Make use of SGSceneFeatues for anisotropic filtering,
clean up.

simgear/scene/material/mat.cxx
simgear/scene/material/mat.hxx
simgear/scene/util/SGSceneFeatures.cxx
simgear/scene/util/SGSceneFeatures.hxx

index 646a0e535548fdba2416850a327039c837d84428..fdccd51175eac48b8adeffd56b2c9217f9792e23 100644 (file)
@@ -326,7 +326,7 @@ void SGMaterial::assignTexture( osg::StateSet *state, const std::string &fname,
    {
       osg::Texture2D* texture = SGLoadTexture2D(fname, _wrapu, _wrapv,
                                                 mipmap ? -1 : 0);
-      texture->setMaxAnisotropy( SGTextureFilterListener::getFilter());
+         texture->setMaxAnisotropy( SGGetTextureFilter());
       state->setTextureAttributeAndModes(0, texture);
       _tex_cache[fname] = texture;
    }
@@ -361,15 +361,12 @@ SGMaterialGlyph::SGMaterialGlyph(SGPropertyNode *p) :
 {
 }
 
-////////////////////////////////////////////////////////////////////////
-// SGTextureFilterListener
-////////////////////////////////////////////////////////////////////////
-
-
-int SGTextureFilterListener::filter = 1;
+void
+SGSetTextureFilter( int max) {
+       SGSceneFeatures::instance()->setTextureFilter( max);
+}
 
-int SGTextureFilterListener::getFilter() { return filter; };
-void SGTextureFilterListener::setFilter(int filt) { 
-    filter = filt;
-};
-// end of mat.cxx
+int
+SGGetTextureFilter() {
+       return SGSceneFeatures::instance()->getTextureFilter();
+}
index 648abcab5f61602a84ced38fe71d858ead20605a..a5d328b0325e329bcebe1f3ee20388f012b68737 100644 (file)
@@ -43,6 +43,7 @@
 
 #include <simgear/props/props.hxx>
 #include <simgear/structure/SGSharedPtr.hxx>
+#include <simgear/scene/util/SGSceneFeatures.hxx>
 
 #include "matmodel.hxx"
 
@@ -53,18 +54,6 @@ SG_USING_STD(map);
 
 class SGMaterialGlyph;
 
-class SGTextureFilterListener  {
-private:
-  static int filter;
-
-  SGTextureFilterListener() {
-  }
-  
-public:
-  static int getFilter();
-  static void setFilter(int filt);
- };
-
 /**
  * A material in the scene graph.
  *
@@ -345,4 +334,10 @@ private:
   SGSharedPtr<const SGMaterial> mMaterial;
 };
 
+void
+SGSetTextureFilter( int max);
+
+int
+SGGetTextureFilter();
+
 #endif // _SG_MAT_HXX 
index 7cc712626bf9216512e86e196c8365534608058f..ccefab957fa17adb0b6eb66213b1d8553f8d6923 100644 (file)
@@ -39,7 +39,8 @@ SGSceneFeatures::SGSceneFeatures() :
   _textureCompression(UseARBCompression),
   _shaderLights(true),
   _pointSpriteLights(true),
-  _distanceAttenuationLights(true)
+  _distanceAttenuationLights(true),
+  _textureFilter(1)
 {
 }
 
index c38921e8cc222472c9f929fbc47a54ae0685f59a..458633ffd4d6e599a1131da6c2b67de47474544a 100644 (file)
@@ -70,6 +70,12 @@ public:
       return false;
     return getHaveShaderPrograms(contextId);
   }
+  
+  void setTextureFilter( int max) 
+  { _textureFilter = max; }
+  int getTextureFilter() const {
+         return _textureFilter;
+  }
 
 protected:  
   bool getHavePointSprites(unsigned contextId) const;
@@ -87,6 +93,7 @@ private:
   bool _shaderLights;
   bool _pointSpriteLights;
   bool _distanceAttenuationLights;
+  int  _textureFilter;
 };
 
 #endif