summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2012-11-16 07:36:49 +0100
committerTor Arne Vestbø <tor.arne.vestbo@digia.com>2013-02-27 23:55:47 +0100
commitad4cf5068cd39b9ca16bdd9705d0a3ef61783d33 (patch)
tree2be2fa6df50e3055be15be55cecc2764c7e2dad8 /src/plugins/platforms/ios
parent7f7d75201271bc1b87a8607a78c04aeab1ad3513 (diff)
iOS: Don't recreate paint device on beginPaint()
This causes painting errors. Use one lazily-created device that is used for the lifetime of the backing store. Change-Id: Ib36b6f1d6c9f958304dc8403cf17e5d71136469a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r--src/plugins/platforms/ios/qiosbackingstore.mm6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/plugins/platforms/ios/qiosbackingstore.mm b/src/plugins/platforms/ios/qiosbackingstore.mm
index 71f14fdd91..6cefc03377 100644
--- a/src/plugins/platforms/ios/qiosbackingstore.mm
+++ b/src/plugins/platforms/ios/qiosbackingstore.mm
@@ -60,6 +60,7 @@ QIOSBackingStore::QIOSBackingStore(QWindow *window)
QIOSBackingStore::~QIOSBackingStore()
{
delete m_context;
+ delete m_device;
}
void QIOSBackingStore::beginPaint(const QRegion &)
@@ -68,7 +69,8 @@ void QIOSBackingStore::beginPaint(const QRegion &)
window()->setSurfaceType(QSurface::OpenGLSurface);
m_context->makeCurrent(window());
- m_device = new QOpenGLPaintDevice(window()->size());
+ if (!m_device)
+ m_device = new QOpenGLPaintDevice(window()->size());
}
QPaintDevice *QIOSBackingStore::paintDevice()
@@ -86,8 +88,6 @@ void QIOSBackingStore::flush(QWindow *window, const QRegion &region, const QPoin
void QIOSBackingStore::endPaint()
{
- delete m_device;
-
// Calling makeDone() on the context here would be an option,
// but is not needed, and would actually add some overhead.
}