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
diff --git a/gpu/src/GrGLInterface.cpp b/gpu/src/GrGLInterface.cpp
index 5ecf8eb..2237474 100644
--- a/gpu/src/GrGLInterface.cpp
+++ b/gpu/src/GrGLInterface.cpp
@@ -54,6 +54,25 @@
}
}
+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 @@
return false;
}
-
GR_API void GrGLSetGLInterface(GrGLInterface* gl_interface) {
gGLInterface = gl_interface;
}
@@ -94,6 +112,12 @@
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 ||