diff options
author | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-02-01 21:00:55 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-02-01 21:00:55 +0100 |
commit | dcd5cb973622d059818dba1a2c7b9a7b7601a14c (patch) | |
tree | fbda1c8c6d36cae42b084f7298cf5b1904e21e9f /src/gui/image | |
parent | f299b565b5904e39a47b6133643448e46810f0ed (diff) | |
parent | ff68e5d667cc62141f177d01f747a62c95f08d3e (diff) |
Merge remote-tracking branch 'gerrit/dev' into HEAD
Diffstat (limited to 'src/gui/image')
-rw-r--r-- | src/gui/image/qmovie.cpp | 4 | ||||
-rw-r--r-- | src/gui/image/qpixmap_raster.cpp | 23 | ||||
-rw-r--r-- | src/gui/image/qpixmap_raster_p.h | 2 |
3 files changed, 11 insertions, 18 deletions
diff --git a/src/gui/image/qmovie.cpp b/src/gui/image/qmovie.cpp index 1fdef4e230..55ddd839b7 100644 --- a/src/gui/image/qmovie.cpp +++ b/src/gui/image/qmovie.cpp @@ -170,11 +170,11 @@ \sa QMovie::stop() */ -#include "qglobal.h" +#include "qmovie.h" #ifndef QT_NO_MOVIE -#include "qmovie.h" +#include "qglobal.h" #include "qimage.h" #include "qimagereader.h" #include "qpixmap.h" diff --git a/src/gui/image/qpixmap_raster.cpp b/src/gui/image/qpixmap_raster.cpp index 741f7713da..54a5b94840 100644 --- a/src/gui/image/qpixmap_raster.cpp +++ b/src/gui/image/qpixmap_raster.cpp @@ -51,7 +51,6 @@ #include <QImageReader> #include <QGuiApplication> #include <QScreen> -#include <private/qimage_p.h> #include <private/qsimd_p.h> #include <private/qdrawhelper_p.h> #include <qpa/qplatformscreen.h> @@ -135,7 +134,7 @@ bool QRasterPlatformPixmap::fromData(const uchar *buffer, uint len, const char * if (image.isNull()) return false; - createPixmapForImage(image, flags, /* inplace = */true); + createPixmapForImage(std::move(image), flags); return !isNull(); } @@ -143,13 +142,13 @@ void QRasterPlatformPixmap::fromImage(const QImage &sourceImage, Qt::ImageConversionFlags flags) { QImage image = sourceImage; - createPixmapForImage(image, flags, /* inplace = */false); + createPixmapForImage(std::move(image), flags); } void QRasterPlatformPixmap::fromImageInPlace(QImage &sourceImage, Qt::ImageConversionFlags flags) { - createPixmapForImage(sourceImage, flags, /* inplace = */true); + createPixmapForImage(std::move(sourceImage), flags); } void QRasterPlatformPixmap::fromImageReader(QImageReader *imageReader, @@ -160,7 +159,7 @@ void QRasterPlatformPixmap::fromImageReader(QImageReader *imageReader, if (image.isNull()) return; - createPixmapForImage(image, flags, /* inplace = */true); + createPixmapForImage(std::move(image), flags); } // from qbackingstore.cpp @@ -301,7 +300,7 @@ int QRasterPlatformPixmap::metric(QPaintDevice::PaintDeviceMetric metric) const return 0; } -void QRasterPlatformPixmap::createPixmapForImage(QImage &sourceImage, Qt::ImageConversionFlags flags, bool inPlace) +void QRasterPlatformPixmap::createPixmapForImage(QImage sourceImage, Qt::ImageConversionFlags flags) { QImage::Format format; if (flags & Qt::NoFormatConversion) @@ -335,16 +334,10 @@ void QRasterPlatformPixmap::createPixmapForImage(QImage &sourceImage, Qt::ImageC if (format == QImage::Format_RGB32 && (sourceImage.format() == QImage::Format_ARGB32 || sourceImage.format() == QImage::Format_ARGB32_Premultiplied)) { - inPlace = inPlace && sourceImage.isDetached(); - image = sourceImage; - if (!inPlace) - image.detach(); - if (image.d) - image.d->format = QImage::Format_RGB32; - } else if (inPlace && sourceImage.d->convertInPlace(format, flags)) { - image = sourceImage; + image = std::move(sourceImage); + image.reinterpretAsFormat(QImage::Format_RGB32); } else { - image = sourceImage.convertToFormat(format, flags); + image = std::move(sourceImage).convertToFormat(format, flags); } if (image.d) { diff --git a/src/gui/image/qpixmap_raster_p.h b/src/gui/image/qpixmap_raster_p.h index 95e018eb35..6ea965a324 100644 --- a/src/gui/image/qpixmap_raster_p.h +++ b/src/gui/image/qpixmap_raster_p.h @@ -85,7 +85,7 @@ public: protected: int metric(QPaintDevice::PaintDeviceMetric metric) const Q_DECL_OVERRIDE; - void createPixmapForImage(QImage &sourceImage, Qt::ImageConversionFlags flags, bool inPlace); + void createPixmapForImage(QImage sourceImage, Qt::ImageConversionFlags flags); void setImage(const QImage &image); QImage image; static QImage::Format systemOpaqueFormat(); |