mirror of
git://source.winehq.org/git/wine.git
synced 2024-07-21 11:34:12 +00:00
d3drm: Fix components of palette built when loading texture from file.
Fix the palette-building code used by IDirect3DTexture::InitFromFile to use color components correctly. Also, fix and expand the tests to properly check the components of a built palette.
This commit is contained in:
parent
77189a341f
commit
293c6d24e3
|
@ -6287,8 +6287,8 @@ static void test_bitmap_data(unsigned int test_idx, const D3DRMIMAGE *img,
|
||||||
for (i = 0; i < img->palette_size; ++i)
|
for (i = 0; i < img->palette_size; ++i)
|
||||||
{
|
{
|
||||||
unsigned int idx = upside_down ? (h - 1) * w - i + (i % w) * 2 : i;
|
unsigned int idx = upside_down ? (h - 1) * w - i + (i % w) * 2 : i;
|
||||||
ok(img->palette[i].red == idx % MOD_B
|
ok(img->palette[i].red == idx % MOD_R
|
||||||
&& img->palette[i].green == idx % MOD_G && img->palette[i].blue == idx % MOD_R,
|
&& img->palette[i].green == idx % MOD_G && img->palette[i].blue == idx % MOD_B,
|
||||||
"Test %u: Got unexpected palette entry (%u) color 0x%02x%02x%02x.\n",
|
"Test %u: Got unexpected palette entry (%u) color 0x%02x%02x%02x.\n",
|
||||||
test_idx, i, img->palette[i].red, img->palette[i].green, img->palette[i].blue);
|
test_idx, i, img->palette[i].red, img->palette[i].green, img->palette[i].blue);
|
||||||
ok(img->palette[i].flags == D3DRMPALETTE_READONLY,
|
ok(img->palette[i].flags == D3DRMPALETTE_READONLY,
|
||||||
|
@ -6367,6 +6367,7 @@ static void test_load_texture(void)
|
||||||
{100, 100, FALSE},
|
{100, 100, FALSE},
|
||||||
{99, 100, FALSE},
|
{99, 100, FALSE},
|
||||||
{3, 39, FALSE},
|
{3, 39, FALSE},
|
||||||
|
{16, 16, FALSE},
|
||||||
};
|
};
|
||||||
|
|
||||||
hr = Direct3DRMCreate(&d3drm1);
|
hr = Direct3DRMCreate(&d3drm1);
|
||||||
|
|
|
@ -103,9 +103,9 @@ static BOOL d3drm_image_palettise(D3DRMIMAGE *image, unsigned char *src_data,
|
||||||
for (i = 0; i < colour_count; ++i)
|
for (i = 0; i < colour_count; ++i)
|
||||||
{
|
{
|
||||||
entry = &palette[i];
|
entry = &palette[i];
|
||||||
if (entry->red == src_ptr[x * 3 + 0]
|
if (entry->red == src_ptr[x * 3 + 2]
|
||||||
&& entry->green == src_ptr[x * 3 + 1]
|
&& entry->green == src_ptr[x * 3 + 1]
|
||||||
&& entry->blue == src_ptr[x * 3 + 2])
|
&& entry->blue == src_ptr[x * 3 + 0])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,9 +119,9 @@ static BOOL d3drm_image_palettise(D3DRMIMAGE *image, unsigned char *src_data,
|
||||||
}
|
}
|
||||||
|
|
||||||
entry = &palette[colour_count++];
|
entry = &palette[colour_count++];
|
||||||
entry->red = src_ptr[x * 3 + 0];
|
entry->red = src_ptr[x * 3 + 2];
|
||||||
entry->green = src_ptr[x * 3 + 1];
|
entry->green = src_ptr[x * 3 + 1];
|
||||||
entry->blue = src_ptr[x * 3 + 2];
|
entry->blue = src_ptr[x * 3 + 0];
|
||||||
entry->flags = D3DRMPALETTE_READONLY;
|
entry->flags = D3DRMPALETTE_READONLY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue