From f84589ea1fd7aae9a2c2c70a6124951aada9e889 Mon Sep 17 00:00:00 2001 From: Roderick Colenbrander Date: Tue, 29 Jan 2008 22:42:32 +0100 Subject: [PATCH] wined3d: Reload the palette on a color key change. This fixes the ddex4/ddex5 samples from the dx7 sdk. --- dlls/wined3d/surface.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index a34c0cfdf5f..6cc3b5a6a82 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -2102,11 +2102,18 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_LoadTexture(IWineD3DSurface *iface, BO /* To perform the color key conversion we need a sysmem copy of * the surface. Make sure we have it */ + IWineD3DSurface_LoadLocation(iface, SFLAG_INSYSMEM, NULL); + /* Make sure the texture is reloaded because of the color key change, this kills performance though :( */ + /* TODO: This is not necessarily needed with hw palettized texture support */ + This->Flags &= ~SFLAG_INTEXTURE; } else if(palette9_changed(This)) { TRACE("Reloading surface because the d3d8/9 palette was changed\n"); /* TODO: This is not necessarily needed with hw palettized texture support */ IWineD3DSurface_LoadLocation(iface, SFLAG_INSYSMEM, NULL); + + /* Make sure the texture is reloaded because of the color key change, this kills performance though :( */ + This->Flags &= ~SFLAG_INTEXTURE; } else { TRACE("surface is already in texture\n"); return WINED3D_OK; -- 2.11.4.GIT