diff options
Diffstat (limited to 'src/gui/image/qimage_sse2.cpp')
-rw-r--r-- | src/gui/image/qimage_sse2.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gui/image/qimage_sse2.cpp b/src/gui/image/qimage_sse2.cpp index 6424e67cfc..4a719d4c26 100644 --- a/src/gui/image/qimage_sse2.cpp +++ b/src/gui/image/qimage_sse2.cpp @@ -43,7 +43,7 @@ QT_BEGIN_NAMESPACE bool convert_ARGB_to_ARGB_PM_inplace_sse2(QImageData *data, Qt::ImageConversionFlags) { - Q_ASSERT(data->format == QImage::Format_ARGB32); + Q_ASSERT(data->format == QImage::Format_ARGB32 || data->format == QImage::Format_RGBA8888); // extra pixels on each line const int spare = data->width & 3; @@ -92,7 +92,10 @@ bool convert_ARGB_to_ARGB_PM_inplace_sse2(QImageData *data, Qt::ImageConversionF d = reinterpret_cast<__m128i*>(p+pad); } - data->format = QImage::Format_ARGB32_Premultiplied; + if (data->format == QImage::Format_ARGB32) + data->format = QImage::Format_ARGB32_Premultiplied; + else + data->format = QImage::Format_RGBA8888_Premultiplied; return true; } |