OpenGL: Request latest GL version when using QGLTemporaryContext
authorSean Harmer <sean.harmer@kdab.com>
Wed, 19 Sep 2012 11:07:46 +0000 (12:07 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 19 Sep 2012 14:16:13 +0000 (16:16 +0200)
This is necessary so that QGLFormat::openGLVersionFlags() returns the
complete set of versions. Without this patch the temporary context
ends up obtaining an OpenGL 2.x context as the QPA plugins now prefer
to use the ARB {wgl,glx}CreateContextAttribsARB function which creates
contexts of the specified version (2.0 for a default QSurfaceFormat).

Change-Id: I2c3e02c9d7b77d4ee0484f9e8786f41675f8a439
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
src/opengl/qgl_qpa.cpp

index 117401c..8a07b6a 100644 (file)
@@ -308,6 +308,13 @@ QGLTemporaryContext::QGLTemporaryContext(bool, QWidget *)
     d->window->create();
 
     d->context = new QOpenGLContext;
+#if !defined(QT_OPENGL_ES)
+    // On desktop, request latest released version
+    QSurfaceFormat format;
+    format.setMajorVersion(4);
+    format.setMinorVersion(3);
+    d->context->setFormat(format);
+#endif
     d->context->create();
     d->context->makeCurrent(d->window);
 }