Fix QQuickWidget offscreen surface format and creation order
authorLaszlo Agocs <laszlo.agocs@digia.com>
Thu, 5 Jun 2014 13:16:33 +0000 (15:16 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 5 Jun 2014 13:54:58 +0000 (15:54 +0200)
commit13be09c97fe235ac8f453cbee9c1f794b6815db5
tree5eb7a244c55c22cf73867ba3df2a2a1cfa922d0c
parentbcabc0ad3d25e78cd158a59fef4e894b3ec58b72
Fix QQuickWidget offscreen surface format and creation order

Create the QOffscreenSurface together with, and after, the QOpenGLContext.
This is essential to get a surface that is compatible with the context and
is in line with the QOffscreenSurface usage recommendation from the docs.

Otherwise, if the offscreen surface gets created first, without
knowing what _actual_ format (e.g. EGL configuration) the context
will use, the result is an incompatible surface and context on
systems that offer a different set of configurations for window and
pbuffer surfaces.

This fixes QQuickWidget on EGL implementations that offer both 16 and 24
bit pbuffer configs, but only 24 (or 32) bit window configs.

Task-number: QTBUG-39474
Change-Id: I43925d2b25e28d26d172ce9d22651c25b281b832
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
src/quickwidgets/qquickwidget.cpp
src/quickwidgets/qquickwidget_p.h