summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVal Doroshchuk <valentyn.doroshchuk@qt.io>2017-11-07 16:59:24 +0100
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2017-11-08 10:31:59 +0000
commite3cf8e4da46302039d5c5eabb7baa2ffcfe3374d (patch)
treeb9cdf8291e6cb2281ba86d7be66cace3de02c574 /src
parenta383e038116654cebb3105554dfff8915b0b3f70 (diff)
Convert ARGB32 to premultiplied
Do not render into ARGB32 images using QPainter. Using premultiplied version is significantly faster. Task-number: QTBUG-52114 Change-Id: Ia057788d5af0fb303a69310a7c7a197ec7f76516 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/multimediawidgets/qpaintervideosurface.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/multimediawidgets/qpaintervideosurface.cpp b/src/multimediawidgets/qpaintervideosurface.cpp
index 214e5ec7e..6e93e150d 100644
--- a/src/multimediawidgets/qpaintervideosurface.cpp
+++ b/src/multimediawidgets/qpaintervideosurface.cpp
@@ -191,6 +191,10 @@ QAbstractVideoSurface::Error QVideoSurfaceGenericPainter::paint(
m_imageSize.height(),
m_frame.bytesPerLine(),
m_imageFormat);
+ // Do not render into ARGB32 images using QPainter.
+ // Using QImage::Format_ARGB32_Premultiplied is significantly faster.
+ if (m_imageFormat == QImage::Format_ARGB32)
+ image = image.convertToFormat(QImage::Format_ARGB32_Premultiplied);
const QTransform oldTransform = painter->transform();
QTransform transform = oldTransform;