diff options
author | Rhys Weatherley <rhys.weatherley@nokia.com> | 2010-08-03 11:23:37 +1000 |
---|---|---|
committer | Rhys Weatherley <rhys.weatherley@nokia.com> | 2010-08-03 11:23:37 +1000 |
commit | bf5c25c4e7571475255e1d9de307913bee228d10 (patch) | |
tree | 8f67cc323eb3a8a5f1fea723783e8efda35686c5 /src | |
parent | 88917087b64a014a69d12946a162ab6588e733e6 (diff) | |
download | qt4-tools-bf5c25c4e7571475255e1d9de307913bee228d10.tar.gz |
Don't resolve GLSL extensions if no shaders
If the GL server is 1.x, but the client is 2.x, then the
qt_resolve_glsl_extensions() function was returning true
because the functions existed client-side, when it should
have returned false because the functionality didn't exist
server-side.
Task-number: QTBUG-12478
Reviewed-by: Sarah Smith
Diffstat (limited to 'src')
-rw-r--r-- | src/opengl/qglextensions.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/opengl/qglextensions.cpp b/src/opengl/qglextensions.cpp index c091191a86..433ccae5bc 100644 --- a/src/opengl/qglextensions.cpp +++ b/src/opengl/qglextensions.cpp @@ -233,6 +233,10 @@ bool qt_resolve_glsl_extensions(QGLContext *ctx) if (glCreateShader) return true; + // Must at least have the FragmentShader extension to continue. + if (!(QGLExtensions::glExtensions() & QGLExtensions::FragmentShader)) + return false; + glCreateShader = (_glCreateShader) ctx->getProcAddress(QLatin1String("glCreateShader")); if (glCreateShader) { glShaderSource = (_glShaderSource) ctx->getProcAddress(QLatin1String("glShaderSource")); |