diff options
author | Laszlo Agocs <laszlo.agocs@digia.com> | 2014-08-07 16:45:05 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@digia.com> | 2014-08-08 07:29:29 +0200 |
commit | 22e439141384f49028770d2410fafb18ef8cad1f (patch) | |
tree | d30ada7a9da27083c464948654ad1d87b21d1f65 /src/gui/kernel/qopenglcontext.cpp | |
parent | 41a7072195eef0f7daa94d0ce75a3f68e721d1cb (diff) |
Add default format to QSurfaceFormat
Add defaultFormat() and setDefaultFormat() statics to QSurfaceFormat.
These define the default values for the requestedFormat members of
QOpenGLContext, QWindow and QOpenGLWidget (and implicitly QOpenGLWindow,
QQuickWindow, etc.)
This replaces QQuickWindow::setDefaultFormat() which can now be removed.
The main inspiration here is not the convenience (avoiding setFormat() calls
for all windows/widgets), but robustness: by setting the format once at the start
of the application, all windows and contexts, including the internal share context
used by QOpenGLWidget and QQuickWidget, will use the same format, eliminating
the possibility of failing due to trying to share between incompatible contexts.
Furthermore, since such a functionality is anyway mandatory for QQuickWindow
(due to the possibility of creating windows from QML code), extending it to
QSurfaceFormat and QOpenGLContext/QWindow is the next logical step.
Change-Id: Ie94486adc489d17fecfcebb7050fecedffd2688b
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/gui/kernel/qopenglcontext.cpp')
-rw-r--r-- | src/gui/kernel/qopenglcontext.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp index f6273fc6dd..71a1d1e074 100644 --- a/src/gui/kernel/qopenglcontext.cpp +++ b/src/gui/kernel/qopenglcontext.cpp @@ -489,6 +489,12 @@ QOpenGLContext::QOpenGLContext(QObject *parent) /*! Sets the \a format the OpenGL context should be compatible with. You need to call create() before it takes effect. + + When the format is not explicitly set via this function, the format returned + by QSurfaceFormat::defaultFormat() will be used. This means that when having + multiple contexts, individual calls to this function can be replaced by one + single call to QSurfaceFormat::setDefaultFormat() before creating the first + context. */ void QOpenGLContext::setFormat(const QSurfaceFormat &format) { |