Commit 4ac05afd authored by Gabriel Ivăncescu's avatar Gabriel Ivăncescu Committed by Alexandre Julliard

comctl32: Remove the masked background when 32bpp bitmaps have no alpha values.

parent a692a125
...@@ -234,6 +234,13 @@ static void add_dib_bits( HIMAGELIST himl, int pos, int count, int width, int he ...@@ -234,6 +234,13 @@ static void add_dib_bits( HIMAGELIST himl, int pos, int count, int width, int he
mask_bits[i * mask_stride + j / 8] |= 0x80 >> (j % 8); mask_bits[i * mask_stride + j / 8] |= 0x80 >> (j % 8);
} }
} }
else if (mask_info) /* mask out the background */
{
for (i = 0; i < height; i++)
for (j = n * width; j < (n + 1) * width; j++)
if ((mask_bits[i * mask_stride + j / 8] << (j % 8)) & 0x80)
bits[i * stride + j] = 0;
}
StretchDIBits( himl->hdcImage, pt.x, pt.y, himl->cx, himl->cy, StretchDIBits( himl->hdcImage, pt.x, pt.y, himl->cx, himl->cy,
n * width, 0, width, height, bits, info, DIB_RGB_COLORS, SRCCOPY ); n * width, 0, width, height, bits, info, DIB_RGB_COLORS, SRCCOPY );
if (mask_info) if (mask_info)
......
...@@ -2436,7 +2436,7 @@ static void test_alpha(void) ...@@ -2436,7 +2436,7 @@ static void test_alpha(void)
/* If all alpha values are zero, the image is considered to have no alpha and gets masked */ /* If all alpha values are zero, the image is considered to have no alpha and gets masked */
if (!GetAValue(bits[0]) && !GetAValue(bits[1])) if (!GetAValue(bits[0]) && !GetAValue(bits[1]))
todo_wine ok(!bits[0] && bits[1] == test_bitmaps[i + 1], ok(!bits[0] && bits[1] == test_bitmaps[i + 1],
"Bitmap [%08X, %08X] returned [%08X, %08X], expected [%08X, %08X]\n", "Bitmap [%08X, %08X] returned [%08X, %08X], expected [%08X, %08X]\n",
test_bitmaps[i], test_bitmaps[i + 1], bits[0], bits[1], 0, test_bitmaps[i + 1]); test_bitmaps[i], test_bitmaps[i + 1], bits[0], bits[1], 0, test_bitmaps[i + 1]);
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment