Module: wine Branch: master Commit: 544816797adc4de21713abe4c9e208692d88eaa3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=544816797adc4de21713abe4c9...
Author: Stefan Dösinger stefan@codeweavers.com Date: Tue May 13 16:21:53 2014 +0200
wined3d: Don't update the color table on palette changes.
---
dlls/ddraw/tests/ddraw1.c | 4 ++-- dlls/ddraw/tests/ddraw2.c | 4 ++-- dlls/ddraw/tests/ddraw4.c | 4 ++-- dlls/ddraw/tests/ddraw7.c | 4 ++-- dlls/wined3d/surface.c | 15 +++------------ 5 files changed, 11 insertions(+), 20 deletions(-)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c index ef07b97..c8f7d65 100644 --- a/dlls/ddraw/tests/ddraw1.c +++ b/dlls/ddraw/tests/ddraw1.c @@ -5126,7 +5126,7 @@ static void test_palette_gdi(void)
i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -5139,7 +5139,7 @@ static void test_palette_gdi(void)
i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c index 64aa519..23795d3 100644 --- a/dlls/ddraw/tests/ddraw2.c +++ b/dlls/ddraw/tests/ddraw2.c @@ -6194,7 +6194,7 @@ static void test_palette_gdi(void)
i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -6207,7 +6207,7 @@ static void test_palette_gdi(void)
i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c index b760dfb..3d0bfe5 100644 --- a/dlls/ddraw/tests/ddraw4.c +++ b/dlls/ddraw/tests/ddraw4.c @@ -7096,7 +7096,7 @@ static void test_palette_gdi(void)
i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -7109,7 +7109,7 @@ static void test_palette_gdi(void)
i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c index 8c5f6ac..97a6a19 100644 --- a/dlls/ddraw/tests/ddraw7.c +++ b/dlls/ddraw/tests/ddraw7.c @@ -6818,7 +6818,7 @@ static void test_palette_gdi(void)
i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -6831,7 +6831,7 @@ static void test_palette_gdi(void)
i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 8e4b88b..dea27ab 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -787,12 +787,6 @@ static void surface_realize_palette(struct wined3d_surface *surface) } }
- if (surface->flags & SFLAG_DIBSECTION) - { - TRACE("Updating the DC's palette.\n"); - SetDIBColorTable(surface->hDC, 0, 256, palette->colors); - } - /* Propagate the changes to the drawable when we have a palette. */ if (surface->resource.usage & WINED3DUSAGE_RENDERTARGET) surface_load_location(surface, surface->draw_binding); @@ -1379,17 +1373,14 @@ static void gdi_surface_realize_palette(struct wined3d_surface *surface)
if (!palette) return;
- if (surface->flags & SFLAG_DIBSECTION) - { - TRACE("Updating the DC's palette.\n"); - SetDIBColorTable(surface->hDC, 0, 256, palette->colors); - } - /* Update the image because of the palette change. Some games like e.g. * Red Alert call SetEntries a lot to implement fading. */ /* Tell the swapchain to update the screen. */ if (surface->swapchain && surface == surface->swapchain->front_buffer) + { + SetDIBColorTable(surface->hDC, 0, 256, palette->colors); x11_copy_to_screen(surface->swapchain, NULL); + } }
static void gdi_surface_unmap(struct wined3d_surface *surface)