From fccd05b290a7c55bb8ab43bcc9a856cff47aefb9 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 24 Nov 2008 13:19:01 +0000 Subject: [PATCH] Converted OpenGL version number code to using osg::asciiToFloat to avoid issues with conversion using locale senstive atof function --- src/osg/GL2Extensions.cpp | 5 +++-- src/osg/GLExtensions.cpp | 2 +- src/osg/TexEnvFilter.cpp | 2 +- src/osg/Texture.cpp | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/osg/GL2Extensions.cpp b/src/osg/GL2Extensions.cpp index a4fb3b3a6..4643a18ae 100644 --- a/src/osg/GL2Extensions.cpp +++ b/src/osg/GL2Extensions.cpp @@ -22,6 +22,7 @@ #include #include #include +#include using namespace osg; @@ -325,7 +326,7 @@ void GL2Extensions::setupGL2Extensions(unsigned int contextID) return; } - _glVersion = atof( version ); + _glVersion = asciiToFloat( version ); _glslLanguageVersion = 0.0f; _isShaderObjectsSupported = osg::isGLExtensionSupported(contextID,"GL_ARB_shader_objects"); @@ -341,7 +342,7 @@ void GL2Extensions::setupGL2Extensions(unsigned int contextID) while(glGetError() != GL_NO_ERROR) {} // reset error flag const char* langVerStr = (const char*)glGetString(GL_SHADING_LANGUAGE_VERSION); if( (glGetError() == GL_NO_ERROR) && langVerStr ) - _glslLanguageVersion = atof( langVerStr ); + _glslLanguageVersion = asciiToFloat( langVerStr ); else _glslLanguageVersion = 1.0f; } diff --git a/src/osg/GLExtensions.cpp b/src/osg/GLExtensions.cpp index 93ac3dd2c..7752eaa25 100644 --- a/src/osg/GLExtensions.cpp +++ b/src/osg/GLExtensions.cpp @@ -47,7 +47,7 @@ float osg::getGLVersionNumber() if (!versionstring) return 0.0; std::string vs( versionstring ); - return( atof( vs.substr( 0, vs.find( " " ) ).c_str() ) ); + return( asciiToFloat( vs.substr( 0, vs.find( " " ) ).c_str() ) ); } bool osg::isExtensionInExtensionString(const char *extension, const char *extensionString) diff --git a/src/osg/TexEnvFilter.cpp b/src/osg/TexEnvFilter.cpp index 4548ffe7c..5fbb8896e 100644 --- a/src/osg/TexEnvFilter.cpp +++ b/src/osg/TexEnvFilter.cpp @@ -29,7 +29,7 @@ TexEnvFilter::~TexEnvFilter() void TexEnvFilter::apply(State& state) const { // note from RO, need to adapt to do testing per graphics context. - static float glVersion = atof( (const char *)glGetString( GL_VERSION ) ); + static float glVersion = asciiToFloat( (const char *)glGetString( GL_VERSION ) ); static bool s_isTexLodBias = glVersion>=1.4 || isGLExtensionSupported(state.getContextID(),"GL_EXT_texture_lod_bias"); if (s_isTexLodBias) diff --git a/src/osg/Texture.cpp b/src/osg/Texture.cpp index 057399298..7bc48160d 100644 --- a/src/osg/Texture.cpp +++ b/src/osg/Texture.cpp @@ -1635,7 +1635,7 @@ void Texture::Extensions::setupGLExtensions(unsigned int contextID) } - float glVersion = atof( (const char *)version ); + float glVersion = asciiToFloat( (const char *)version ); const char* renderer = (const char*) glGetString(GL_RENDERER); std::string rendererString(renderer ? renderer : "");