summaryrefslogtreecommitdiffstats
path: root/src/openvg/qpixmapdata_vg.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.p.agocs@nokia.com>2011-03-24 14:29:26 (GMT)
committerLaszlo Agocs <laszlo.p.agocs@nokia.com>2011-03-24 14:29:26 (GMT)
commit83d33a9f64d1472926c61e472655182e539a8e10 (patch)
tree66895fbcb4b8defc2ea526b13419606485fa1d85 /src/openvg/qpixmapdata_vg.cpp
parente087227d6bb2c8f66f518f57aa18452d05658d72 (diff)
downloadQt-83d33a9f64d1472926c61e472655182e539a8e10.zip
Qt-83d33a9f64d1472926c61e472655182e539a8e10.tar.gz
Qt-83d33a9f64d1472926c61e472655182e539a8e10.tar.bz2
Fix an issue with VGImage readback in openvg.
The special case of creating a pixmap from RSgImage via a native handle provider needs extra attention when hibernating: In this case the hibernating happens as usual, however doing a readback would produce unwanted results and must be avoided. Reviewed-by: Jani Hautakangas
Diffstat (limited to 'src/openvg/qpixmapdata_vg.cpp')
-rw-r--r--src/openvg/qpixmapdata_vg.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/openvg/qpixmapdata_vg.cpp b/src/openvg/qpixmapdata_vg.cpp
index 3f67c79..80f5b2f 100644
--- a/src/openvg/qpixmapdata_vg.cpp
+++ b/src/openvg/qpixmapdata_vg.cpp
@@ -458,7 +458,7 @@ void QVGPixmapData::hibernate()
if (skipHibernate)
return;
- forceToImage();
+ forceToImage(false); // no readback allowed here
destroyImageAndContext();
}
@@ -502,12 +502,13 @@ int QVGPixmapData::metric(QPaintDevice::PaintDeviceMetric metric) const
// Ensures that the pixmap is backed by some valid data and forces the data to
// be re-uploaded to the VGImage when toVGImage() is called next time.
-void QVGPixmapData::forceToImage()
+void QVGPixmapData::forceToImage(bool allowReadback)
{
if (!isValid())
return;
- ensureReadback(false);
+ if (allowReadback)
+ ensureReadback(false);
if (source.isNull())
source = QVolatileImage(w, h, sourceFormat());