Fix inconsistent alpha masking in qConvertARGB32PMToARGB64PM_sse2
The prolog and epilog did not force RGB32 to be converted to RGB64 with alpha fully defined like the middle optimized part. Change-Id: If7c4829f2239f9a3c524f78b9ce269e2b0b5b150 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>bb10
parent
e2978d6097
commit
d829dd3f44
|
|
@ -580,6 +580,8 @@ static inline void qConvertARGB32PMToARGB64PM_sse2(QRgba64 *buffer, const uint *
|
|||
int i = 0;
|
||||
for (; ((uintptr_t)buffer & 0xf) && i < count; ++i) {
|
||||
uint s = *src++;
|
||||
if (maskAlpha)
|
||||
s = s | 0xff000000;
|
||||
if (RGBA)
|
||||
s = RGBA2ARGB(s);
|
||||
*buffer++ = QRgba64::fromArgb32(s);
|
||||
|
|
@ -605,6 +607,8 @@ static inline void qConvertARGB32PMToARGB64PM_sse2(QRgba64 *buffer, const uint *
|
|||
|
||||
SIMD_EPILOGUE(i, count, 3) {
|
||||
uint s = *src++;
|
||||
if (maskAlpha)
|
||||
s = s | 0xff000000;
|
||||
if (RGBA)
|
||||
s = RGBA2ARGB(s);
|
||||
*buffer++ = QRgba64::fromArgb32(s);
|
||||
|
|
|
|||
Loading…
Reference in New Issue