diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2016-12-07 13:03:44 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-01-03 14:11:09 +0000 |
commit | 0b7235d46a80644dedbc802d1f0ec971b06af698 (patch) | |
tree | 3b1e1fe62ab68a46dbb1d5c082424b2009cf5853 /src/gui | |
parent | e3a47a7e5f9c4a027a5a7c9fa376f17dfd9634b7 (diff) |
Fix qdrawhelper function toRGB64
The function was incorrectly handling green and blue color channels
causing them to be dropped. This affects drawing non 32-bit images onto
10-bit per color channels formats such as RGB30.
Change-Id: I9211e253b1a9da0dada5c418d592a8f531265989
(cherry picked from commit f882d2f443a8950a2f784fa91b3ff10a645577f7)
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/painting/qdrawhelper.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index c0a662b002..c446177bb6 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -200,8 +200,8 @@ static const QRgba64 *QT_FASTCALL convertToRGB64(QRgba64 *buffer, const uint *sr uint green = (src[i] >> greenShift<Format>()) & greenMask; uint blue = (src[i] >> blueShift<Format>()) & blueMask; - red = ((red << redLeftShift) | (red >> redRightShift)) << 16; - green = ((green << greenLeftShift) | (green >> greenRightShift)) << 8; + red = ((red << redLeftShift) | (red >> redRightShift)); + green = ((green << greenLeftShift) | (green >> greenRightShift)); blue = (blue << blueLeftShift) | (blue >> blueRightShift); buffer[i] = QRgba64::fromRgba(red, green, blue, 255); } |