diff options
author | Jocelyn Turcotte <jocelyn.turcotte@nokia.com> | 2012-07-10 19:13:19 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-11 14:52:17 +0200 |
commit | 62e6608f6932c6d871d17b0ccce0c7b388866458 (patch) | |
tree | bcfcb8a120d3abd295ad9a894fb6b7fab27b28e1 | |
parent | 376135c403bc44ab2d7966a85e227aa1534fb996 (diff) |
Add protected virtual ensureActiveTarget() to QOpenGLPaintDevice
Make sure that QOpenGLPaintDevice supports it the same way as
QGLPaintDevice::ensureActiveTarget dit. It is made virtual since the
external code needs to manage FBOs for QOpenGLPaintEngine.
Task-number: QTBUG-25995
Change-Id: Ieed9616f6a14204aae628d7febe6a11538496b3d
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
-rw-r--r-- | src/gui/opengl/qopenglpaintdevice.cpp | 11 | ||||
-rw-r--r-- | src/gui/opengl/qopenglpaintdevice.h | 2 | ||||
-rw-r--r-- | src/gui/opengl/qopenglpaintengine.cpp | 2 |
3 files changed, 15 insertions, 0 deletions
diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp index 60f5e3192a..e070ee6c58 100644 --- a/src/gui/opengl/qopenglpaintdevice.cpp +++ b/src/gui/opengl/qopenglpaintdevice.cpp @@ -244,4 +244,15 @@ bool QOpenGLPaintDevice::paintFlipped() const return d_ptr->flipped; } +/*! + This virtual method is provided as a callback to allow re-binding a + target frame buffer object when different QOpenGLPaintDevice instances + are issuing draw calls alternately on the same OpenGL context. + + QPainter::beginNativePainting will also trigger this method. +*/ +void QOpenGLPaintDevice::ensureActiveTarget() +{ +} + QT_END_NAMESPACE diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h index a07d11062f..44acbab031 100644 --- a/src/gui/opengl/qopenglpaintdevice.h +++ b/src/gui/opengl/qopenglpaintdevice.h @@ -80,6 +80,8 @@ public: void setPaintFlipped(bool flipped); bool paintFlipped() const; + virtual void ensureActiveTarget(); + protected: int metric(QPaintDevice::PaintDeviceMetric metric) const; diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp index 2f84a0f295..bbe5854031 100644 --- a/src/gui/opengl/qopenglpaintengine.cpp +++ b/src/gui/opengl/qopenglpaintengine.cpp @@ -2013,6 +2013,8 @@ void QOpenGL2PaintEngineEx::ensureActive() } if (d->needsSync) { + d->device->ensureActiveTarget(); + d->transferMode(BrushDrawingMode); glViewport(0, 0, d->width, d->height); d->needsSync = false; |