#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
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;
SGSceneFeatures(const SGSceneFeatures&);
SGSceneFeatures& operator=(const SGSceneFeatures&);
+ TextureCompression _textureCompression;
bool _shaderLights;
bool _pointSpriteLights;
bool _distanceAttenuationLights;
+ int _textureFilter;
};
#endif