[PATCH v2 1/1] windowscodecs: Fix non-zero alpha detection in ImagingFactory_CreateBitmapFromHICON.
Jinoh Kang
wine at gitlab.winehq.org
Tue Jun 28 10:13:27 CDT 2022
From: Jinoh Kang <jinoh.kang.kr at gmail.com>
Increment pixel pointer for every *pixel*, not every *stride*.
Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>
---
dlls/windowscodecs/imgfactory.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/dlls/windowscodecs/imgfactory.c b/dlls/windowscodecs/imgfactory.c
index c7e101e3d62..07f5b53fefd 100644
--- a/dlls/windowscodecs/imgfactory.c
+++ b/dlls/windowscodecs/imgfactory.c
@@ -901,16 +901,14 @@ static HRESULT WINAPI ImagingFactory_CreateBitmapFromHICON(IWICImagingFactory2 *
if (bm.bmBitsPixel == 32)
{
/* If any pixel has a non-zero alpha, ignore hbmMask */
- bits = (DWORD *)buffer;
- for (x = 0; x < width && !has_alpha; x++, bits++)
+ DWORD *ptr = (DWORD *)buffer;
+ DWORD *end = ptr + width * height;
+ while (ptr != end)
{
- for (y = 0; y < height; y++)
+ if (*ptr++ & 0xff000000)
{
- if (*bits & 0xff000000)
- {
- has_alpha = TRUE;
- break;
- }
+ has_alpha = TRUE;
+ break;
}
}
}
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/315
More information about the wine-devel
mailing list