From 0a037078213bdeddebec775328e0116986474e3d Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 9 Jul 2014 15:19:04 +0200 Subject: [PATCH] Avoid calling glGetString on OpenGL 3.0+ To prevent profiling and debugging tools from generating misleading "errors", call glGetString only for ES and GL < 3.0. Task-number: QTBUG-35173 Change-Id: I4fe3b048fff4cda948152e2ceeb1347f2b0e4ca5 Reviewed-by: Sean Harmer --- src/gui/opengl/qopengl.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/gui/opengl/qopengl.cpp b/src/gui/opengl/qopengl.cpp index b452c605e3..9dc8f45495 100644 --- a/src/gui/opengl/qopengl.cpp +++ b/src/gui/opengl/qopengl.cpp @@ -55,16 +55,17 @@ QOpenGLExtensionMatcher::QOpenGLExtensionMatcher() { QOpenGLContext *ctx = QOpenGLContext::currentContext(); QOpenGLFunctions *funcs = ctx->functions(); - const char *extensionStr = reinterpret_cast(funcs->glGetString(GL_EXTENSIONS)); + const char *extensionStr = 0; + + if (ctx->isOpenGLES() || ctx->format().majorVersion() < 3) + extensionStr = reinterpret_cast(funcs->glGetString(GL_EXTENSIONS)); if (extensionStr) { QByteArray ba(extensionStr); QList extensions = ba.split(' '); m_extensions = extensions.toSet(); -#if !defined(QT_OPENGL_3) - } -#else } else { +#ifdef QT_OPENGL_3 // clear error state while (funcs->glGetError()) {} @@ -82,8 +83,8 @@ QOpenGLExtensionMatcher::QOpenGLExtensionMatcher() m_extensions.insert(str); } } +#endif // QT_OPENGL_3 } -#endif } QT_END_NAMESPACE