diff options
author | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2019-12-05 11:39:38 +0200 |
---|---|---|
committer | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2019-12-05 13:16:12 +0200 |
commit | 9b684e9b943c089638451035691e08c53539c682 (patch) | |
tree | 77fd82743a6f8d7d455eb0ff1cc4007afce2f5b5 /src | |
parent | 24b10f52ca19366a9ebd75870d5a02f384253fd9 (diff) |
Fix opaque pixel detection
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ää <tomi.korpipaa@qt.io>
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp | 5 |
1 files 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) |