summaryrefslogtreecommitdiffstats
path: root/src/opengl
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2010-08-06 10:35:47 (GMT)
committerChristian Kamm <christian.d.kamm@nokia.com>2010-08-06 10:35:47 (GMT)
commita8530e5db7ae25ea0ab5df4681308374abf8b6ba (patch)
treef78ee517e8f160aeaed1915854b3ff7c41612ee5 /src/opengl
parenta1f0a650578b71fddae9db05435715338b15ba35 (diff)
downloadQt-a8530e5db7ae25ea0ab5df4681308374abf8b6ba.zip
Qt-a8530e5db7ae25ea0ab5df4681308374abf8b6ba.tar.gz
Qt-a8530e5db7ae25ea0ab5df4681308374abf8b6ba.tar.bz2
Allow customizing the default fbo from the QPlatformGLContext.
Reviewed-by: Jørgen Lind
Diffstat (limited to 'src/opengl')
-rw-r--r--src/opengl/qgl_qpa.cpp1
-rw-r--r--src/opengl/qglpaintdevice.cpp6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/opengl/qgl_qpa.cpp b/src/opengl/qgl_qpa.cpp
index 5f0bca3..b05df64 100644
--- a/src/opengl/qgl_qpa.cpp
+++ b/src/opengl/qgl_qpa.cpp
@@ -139,6 +139,7 @@ bool QGLContext::chooseContext(const QGLContext* shareContext)
}
d->platformContext = widget->platformWindow()->glContext();
Q_ASSERT(d->platformContext);
+ d->default_fbo = d->platformContext->defaultFBO();
d->glFormat = qt_platformwindowformat_to_glformat(d->platformContext->platformWindowFormat());
d->valid =(bool) d->platformContext;
}
diff --git a/src/opengl/qglpaintdevice.cpp b/src/opengl/qglpaintdevice.cpp
index e1dcbfd..e12fdae 100644
--- a/src/opengl/qglpaintdevice.cpp
+++ b/src/opengl/qglpaintdevice.cpp
@@ -166,6 +166,12 @@ void QGLWidgetGLPaintDevice::setWidget(QGLWidget* w)
void QGLWidgetGLPaintDevice::beginPaint()
{
+ // ### This should be in setWidget(), but the context of the QGLWidget
+ // hasn't been set there yet.
+#ifdef Q_WS_QPA
+ m_thisFBO = context()->d_ptr->platformContext->defaultFBO();
+#endif
+
QGLPaintDevice::beginPaint();
if (!glWidget->d_func()->disable_clear_on_painter_begin && glWidget->autoFillBackground()) {
if (glWidget->testAttribute(Qt::WA_TranslucentBackground))