]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/util/SGSceneFeatures.hxx
simgear/scene/sky/sky.cxx: Include sg_inlines.h with simgear/ prefix as all other...
[simgear.git] / simgear / scene / util / SGSceneFeatures.hxx
index 0aa46abc091f6368041cb0768500ca49fc7b538a..9c954015f205085369c428c392854f3f7925e6a0 100644 (file)
 
 #include <simgear/structure/SGReferenced.hxx>
 
+namespace osg { class Texture; }
+
 class SGSceneFeatures : public SGReferenced {
 public:
   static SGSceneFeatures* instance();
 
+  enum TextureCompression {
+    DoNotUseCompression,
+    UseARBCompression,
+    UseDXT1Compression,
+    UseDXT3Compression,
+    UseDXT5Compression
+  };
+
+  void setTextureCompression(TextureCompression textureCompression)
+  { _textureCompression = textureCompression; }
+  TextureCompression getTextureCompression() const
+  { return _textureCompression; }
+  void setTextureCompression(osg::Texture* texture) const;
+
   void setEnablePointSpriteLights(bool enable)
   { _pointSpriteLights = enable; }
   bool getEnablePointSpriteLights(unsigned contextId) const
@@ -54,8 +70,13 @@ public:
       return false;
     return getHaveShaderPrograms(contextId);
   }
+  
+  void setTextureFilter(int max) 
+  { _textureFilter = max; }
+  int getTextureFilter() const
+  { return _textureFilter; }
 
-protected:  
+protected:
   bool getHavePointSprites(unsigned contextId) const;
   bool getHaveFragmentPrograms(unsigned contextId) const;
   bool getHaveVertexPrograms(unsigned contextId) const;
@@ -67,9 +88,11 @@ private:
   SGSceneFeatures(const SGSceneFeatures&);
   SGSceneFeatures& operator=(const SGSceneFeatures&);
 
+  TextureCompression _textureCompression;
   bool _shaderLights;
   bool _pointSpriteLights;
   bool _distanceAttenuationLights;
+  int  _textureFilter;
 };
 
 #endif