diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2012-09-27 15:24:34 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-03 17:22:03 +0200 |
commit | 394249616cbb4c0861a032d33f846f85e2801677 (patch) | |
tree | d1b7b2b44041be92bbc47f3419866a823ed381c6 /src/gui/kernel/qopenglcontext.cpp | |
parent | 84100c9085ddc30368582d02a4229d44622f85e2 (diff) |
OpenGL: Don't request a context version higher than is supported
The function wglCreateContextAttribsARB will fail if we request a
context version higher than is supported. We therefore upper-bound the
requested version by the version of the static context. This results
in context creation succeeding and having the closest possible match
to the requested format.
The xcb qpa plugin is modified to operate similarly to the windows
plugin in that it now creates a "static" context which is used to
limit the versions of contexts requested by the user.
Change-Id: I277ad7cc82edfdf7b9d8502ad921c8175feb1a4a
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Diffstat (limited to 'src/gui/kernel/qopenglcontext.cpp')
-rw-r--r-- | src/gui/kernel/qopenglcontext.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp index 3106b4cd91..6c006ab8b3 100644 --- a/src/gui/kernel/qopenglcontext.cpp +++ b/src/gui/kernel/qopenglcontext.cpp @@ -297,10 +297,18 @@ void QOpenGLContext::setScreen(QScreen *screen) The current configuration includes the format, the share context, and the screen. + If the OpenGL implementation on your system does not support the requested + version of OpenGL context, then QOpenGLContext will try to create the closest + matching version. The actual created context properties can be queried + using the QSurfaceFormat returned by the format() function. For example, if + you request a context that supports OpenGL 4.3 Core profile but the driver + and/or hardware only supports version 3.2 Core profile contexts then you will + get a 3.2 Core profile context. + Returns true if the native context was successfully created and is ready to be used with makeCurrent(), swapBuffers(), etc. - \sa makeCurrent(), destroy() + \sa makeCurrent(), destroy(), format() */ bool QOpenGLContext::create() { |