diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-01-31 13:32:22 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-31 16:21:17 +0100 |
commit | 298330bd436ca9437aa8023363f916b12811c7bf (patch) | |
tree | bbcfc14412984c75a183eca9ddc4244bbcc55edb /src/gui/image/qimage_p.h | |
parent | 2bf186a2e598a4bccdc4979085e8e4d963a3819d (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.h | 5 |
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 |