diff options
author | 2011-07-06 17:47:02 +0000 | |
---|---|---|
committer | 2011-07-06 17:47:02 +0000 | |
commit | 2c17fcdc45f9fa9a2dc785786347040fbe30928b (patch) | |
tree | d6676cf0d78f21fab28476c685aa182fb567a79e /gpu/src/GrGLInterface.cpp | |
parent | 25fd36c7efc0287b6a2a82463eacaeaf91ca07b9 (diff) |
Reduce gets of ext string and check validity of stencil format enums
Review URL: http://codereview.appspot.com/4678043/
git-svn-id: http://skia.googlecode.com/svn/trunk@1801 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gpu/src/GrGLInterface.cpp')
-rw-r--r-- | gpu/src/GrGLInterface.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/gpu/src/GrGLInterface.cpp b/gpu/src/GrGLInterface.cpp index 5ecf8eb591..2237474f97 100644 --- a/gpu/src/GrGLInterface.cpp +++ b/gpu/src/GrGLInterface.cpp @@ -54,6 +54,25 @@ void gl_version_from_string(int* major, int* minor, } } +float gl_version_as_float_from_string(const char* versionString) { + int major, minor; + gl_version_from_string(&major, &minor, versionString); + GrAssert(minor >= 0); + // AFAIK there are only single digit minor numbers + if (minor < 10) { + return major + minor / 10.f; + } else if (minor < 100) { + return major + minor / 100.f; + } else if (minor < 1000) { + return major + minor / 1000.f; + } else { + GrAssert(!"Why so many digits in minor revision number?"); + char temp[32]; + sprintf(temp, "%d.%d", major, minor); + return (float) atof(temp); + } +} + bool has_gl_extension_from_string(const char* ext, const char* extensionString) { int extLength = strlen(ext); @@ -72,7 +91,6 @@ bool has_gl_extension_from_string(const char* ext, return false; } - GR_API void GrGLSetGLInterface(GrGLInterface* gl_interface) { gGLInterface = gl_interface; } @@ -94,6 +112,12 @@ void gl_version(int* major, int* minor) { gl_version_from_string(major, minor, v); } +float gl_version_as_float() { + const char* v = reinterpret_cast<const char*>( + GrGLGetGLInterface()->fGetString(GR_GL_VERSION)); + return gl_version_as_float_from_string(v); +} + bool GrGLInterface::validateShaderFunctions() const { // required for GrGpuGLShaders if (NULL == fAttachShader || |