Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/tests/surface.c:
.todo = TRUE
},
/* Same color key as before except the alpha channel is set. */
{
D3DFMT_R8G8B8, NULL, { 0, 0, 4, 4 }, r8g8b8_4_4, r8g8b8_4_4_expected, 0xff008080,
.todo = TRUE
},
/* Color key on a palette. */
{
D3DFMT_P8, test_palette, { 0, 0, 4, 4 }, p8_4_4, p8_4_4_expected, 0xf0c0c000,
.todo = TRUE
},
{
D3DFMT_A8P8, test_palette, { 0, 0, 4, 4 }, a8p8_4_4, a8p8_4_4_expected, 0x10c0c000,
.todo = TRUE
},
What happens if the color key matches two colors in the palette? Or for the A8P8 to RGB case, what happens if the alpha part doesn't match?
Fundamentally though, I'm not convinced (yet) that the matching happens in the source color space.