From 9b684e9b943c089638451035691e08c53539c682 Mon Sep 17 00:00:00 2001 From: Jere Tuliniemi Date: Thu, 5 Dec 2019 11:39:38 +0200 Subject: Fix opaque pixel detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The scan would stop upon first transparent pixel, so subsequent opaque pixels wouldn't be detected. Task-number: QT3DS-4012 Change-Id: I2b12104393433ef142812234fec5ee5ca6732691 Reviewed-by: Tomi Korpipää Reviewed-by: Antti Määttä Reviewed-by: Miikka Heikkinen --- src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp b/src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp index 577bd55..e88931a 100644 --- a/src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp +++ b/src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp @@ -680,8 +680,9 @@ bool ScanImageForAlpha(const void *inData, QT3DSU32 inWidth, QT3DSU32 inHeight, QT3DSU32 alphaRightShift = inPixelSizeInBytes * 8 - inAlphaSizeInBits; QT3DSU32 maxAlphaValue = (1 << inAlphaSizeInBits) - 1; - for (QT3DSU32 rowIdx = 0; rowIdx < inHeight && hasAlpha == false; ++rowIdx) { - for (QT3DSU32 idx = 0; idx < inWidth && hasAlpha == false; + for (QT3DSU32 rowIdx = 0; rowIdx < inHeight && (hasAlpha == false || hasOpaque == false); + ++rowIdx) { + for (QT3DSU32 idx = 0; idx < inWidth && (hasAlpha == false || hasOpaque == false); ++idx, rowPtr += inPixelSizeInBytes) { QT3DSU32 pixelValue = 0; if (inPixelSizeInBytes == 2) -- cgit v1.2.3