summaryrefslogtreecommitdiffstats
path: root/src/gui/image/qimage_p.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-01-31 13:32:22 +0100
committerQt by Nokia <qt-info@nokia.com>2012-01-31 16:21:17 +0100
commit298330bd436ca9437aa8023363f916b12811c7bf (patch)
treebbcfc14412984c75a183eca9ddc4244bbcc55edb /src/gui/image/qimage_p.h
parent2bf186a2e598a4bccdc4979085e8e4d963a3819d (diff)
Add support for cleanup functions for data-constructed QImages
A QImage can be constructed with a provided buffer, that has to be kept alive for the live-time of the QImage and all its copies. Frameworks like CoreGraphics or Cairo offer a similar method of creating image objects and also offer the ability to provide a callback function that is called when the image is destroyed. This patch adds this functionality to QImage by extending the QImage constructors that take a raw image buffer pointer. Change-Id: Ia6342408c560ef49b498c9e4664b4602febb0fcd Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Michalina Ziemba <michalina.ziemba@nokia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Diffstat (limited to 'src/gui/image/qimage_p.h')
-rw-r--r--src/gui/image/qimage_p.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gui/image/qimage_p.h b/src/gui/image/qimage_p.h
index a021679c18..fd1370d1d3 100644
--- a/src/gui/image/qimage_p.h
+++ b/src/gui/image/qimage_p.h
@@ -69,7 +69,7 @@ struct Q_GUI_EXPORT QImageData { // internal image data
QImageData();
~QImageData();
static QImageData *create(const QSize &size, QImage::Format format, int numColors = 0);
- static QImageData *create(uchar *data, int w, int h, int bpl, QImage::Format format, bool readOnly);
+ static QImageData *create(uchar *data, int w, int h, int bpl, QImage::Format format, bool readOnly, QImageCleanupFunction cleanupFunction = 0, void *cleanupInfo = 0);
QAtomicInt ref;
@@ -94,6 +94,9 @@ struct Q_GUI_EXPORT QImageData { // internal image data
uint is_cached : 1;
uint is_locked : 1;
+ QImageCleanupFunction cleanupFunction;
+ void* cleanupInfo;
+
bool checkForAlphaPixels() const;
// Convert the image in-place, minimizing memory reallocation