aboutsummaryrefslogtreecommitdiffhomepage
path: root/gpu/src/GrGLInterface.cpp
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-07-06 17:47:02 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-07-06 17:47:02 +0000
commit2c17fcdc45f9fa9a2dc785786347040fbe30928b (patch)
treed6676cf0d78f21fab28476c685aa182fb567a79e /gpu/src/GrGLInterface.cpp
parent25fd36c7efc0287b6a2a82463eacaeaf91ca07b9 (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.cpp26
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 ||