forked from Mirrors/wine-wine
windowscodecs: Fix calculation of transparent GIF color index.
parent
56f37637b8
commit
507abc41ca
|
@ -729,9 +729,9 @@ static HRESULT WINAPI GifFrameDecode_CopyPalette(IWICBitmapFrameDecode *iface,
|
||||||
/* look for the transparent color extension */
|
/* look for the transparent color extension */
|
||||||
for (i = 0; i < This->frame->Extensions.ExtensionBlockCount; ++i) {
|
for (i = 0; i < This->frame->Extensions.ExtensionBlockCount; ++i) {
|
||||||
eb = This->frame->Extensions.ExtensionBlocks + i;
|
eb = This->frame->Extensions.ExtensionBlocks + i;
|
||||||
if (eb->Function == 0xF9 && eb->ByteCount == 4) {
|
if (eb->Function == GRAPHICS_EXT_FUNC_CODE && eb->ByteCount == 8) {
|
||||||
if ((eb->Bytes[0] & 1) == 1) {
|
if (eb->Bytes[3] & 1) {
|
||||||
trans = (unsigned char)eb->Bytes[3];
|
trans = (unsigned char)eb->Bytes[6];
|
||||||
colors[trans] &= 0xffffff; /* set alpha to 0 */
|
colors[trans] &= 0xffffff; /* set alpha to 0 */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,7 +118,6 @@ static void test_local_gif_palette(void)
|
||||||
ok(hr == S_OK, "GetColors error %#x\n", hr);
|
ok(hr == S_OK, "GetColors error %#x\n", hr);
|
||||||
ok(ret == count, "expected %u, got %u\n", count, ret);
|
ok(ret == count, "expected %u, got %u\n", count, ret);
|
||||||
ok(color[0] == 0xff010203, "expected 0xff010203, got %#x\n", color[0]);
|
ok(color[0] == 0xff010203, "expected 0xff010203, got %#x\n", color[0]);
|
||||||
todo_wine
|
|
||||||
ok(color[1] == 0x00040506, "expected 0x00040506, got %#x\n", color[1]);
|
ok(color[1] == 0x00040506, "expected 0x00040506, got %#x\n", color[1]);
|
||||||
ok(color[2] == 0xff070809, "expected 0xff070809, got %#x\n", color[2]);
|
ok(color[2] == 0xff070809, "expected 0xff070809, got %#x\n", color[2]);
|
||||||
ok(color[3] == 0xff0a0b0c, "expected 0xff0a0b0c, got %#x\n", color[3]);
|
ok(color[3] == 0xff0a0b0c, "expected 0xff0a0b0c, got %#x\n", color[3]);
|
||||||
|
|
Loading…
Reference in New Issue