From Bob Kuehne, added osg::getGlVersion() and fixed a minor typo in Texture3D.

This commit is contained in:
Robert Osfield 2006-03-08 16:11:54 +00:00
parent fa5ff9d169
commit 4fc4e60cc3
5 changed files with 19 additions and 5 deletions

View File

@ -20,6 +20,12 @@
namespace osg {
/** Return floating-point OpenGL version number.
* Note: Must only be called within a valid OpenGL context,
* undefined behavior may occur otherwise.
*/
extern OSG_EXPORT float getGLVersionNumber();
/** Return true if OpenGL "extension" is supported.
* Note: Must only be called within a valid OpenGL context,
* undefined behavior may occur otherwise.

View File

@ -144,7 +144,7 @@ class OSG_EXPORT Texture3D : public Texture
void lowestCommonDenominator(const Extensions& rhs);
void setupGLExtenions(unsigned int contextID);
void setupGLExtensions(unsigned int contextID);
void setTexture3DSupported(bool flag) { _isTexture3DSupported=flag; }
bool isTexture3DSupported() const { return _isTexture3DSupported; }

View File

@ -28,6 +28,14 @@
#include <windows.h>
#endif
float osg::getGLVersionNumber()
{
// needs to be extended to do proper things with subversions like 1.5.1, etc.
char *versionstring = (char*) glGetString( GL_VERSION );
std::string vs( versionstring );
return( atof( vs.substr( 0, vs.find( " " ) ).c_str() ) );
}
bool osg::isGLExtensionSupported(unsigned int contextID, const char *extension)
{
typedef std::set<std::string> ExtensionSet;

View File

@ -439,7 +439,7 @@ void Texture3D::setExtensions(unsigned int contextID,Extensions* extensions)
Texture3D::Extensions::Extensions(unsigned int contextID)
{
setupGLExtenions(contextID);
setupGLExtensions(contextID);
}
Texture3D::Extensions::Extensions(const Extensions& rhs):
@ -469,7 +469,7 @@ void Texture3D::Extensions::lowestCommonDenominator(const Extensions& rhs)
if (!rhs._gluBuild3DMipmaps) _gluBuild3DMipmaps = 0;
}
void Texture3D::Extensions::setupGLExtenions(unsigned int contextID)
void Texture3D::Extensions::setupGLExtensions(unsigned int contextID)
{
_isTexture3DFast = isGLExtensionSupported(contextID,"GL_EXT_texture3D");

View File

@ -74,7 +74,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Texture3D::Extensions)
I_Constructor1(IN, unsigned int, contextID);
I_Constructor1(IN, const osg::Texture3D::Extensions &, rhs);
I_Method1(void, lowestCommonDenominator, IN, const osg::Texture3D::Extensions &, rhs);
I_Method1(void, setupGLExtenions, IN, unsigned int, contextID);
I_Method1(void, setupGLExtensions, IN, unsigned int, contextID);
I_Method1(void, setTexture3DSupported, IN, bool, flag);
I_Method0(bool, isTexture3DSupported);
I_Method1(void, setTexture3DFast, IN, bool, flag);
@ -104,7 +104,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Texture3D::Extensions)
I_WriteOnlyProperty(void *, TexSubImage3DProc);
I_WriteOnlyProperty(bool, Texture3DFast);
I_WriteOnlyProperty(bool, Texture3DSupported);
I_WriteOnlyProperty(unsigned int, upGLExtenions);
I_WriteOnlyProperty(unsigned int, upGLExtensions);
END_REFLECTOR
BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::Texture3D::SubloadCallback)