diff options
author | Val Doroshchuk <valentyn.doroshchuk@qt.io> | 2017-11-07 16:59:24 +0100 |
---|---|---|
committer | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2017-11-08 10:31:59 +0000 |
commit | e3cf8e4da46302039d5c5eabb7baa2ffcfe3374d (patch) | |
tree | b9cdf8291e6cb2281ba86d7be66cace3de02c574 /src/multimediawidgets | |
parent | a383e038116654cebb3105554dfff8915b0b3f70 (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/multimediawidgets')
-rw-r--r-- | src/multimediawidgets/qpaintervideosurface.cpp | 4 |
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; |