Module: wine Branch: master Commit: f2e03d6c3f8295da65b21723437433070c2dbbed URL: http://source.winehq.org/git/wine.git/?a=commit;h=f2e03d6c3f8295da65b2172343...
Author: Alexander Dorofeyev alexd4@inbox.lv Date: Tue Mar 25 02:04:02 2008 +0200
wined3d: Don't store primary surface palette in device palettes.
---
dlls/wined3d/palette.c | 11 ----------- dlls/wined3d/surface_base.c | 20 +++++--------------- 2 files changed, 5 insertions(+), 26 deletions(-)
diff --git a/dlls/wined3d/palette.c b/dlls/wined3d/palette.c index df72246..95b8da9 100644 --- a/dlls/wined3d/palette.c +++ b/dlls/wined3d/palette.c @@ -157,17 +157,6 @@ static HRESULT WINAPI IWineD3DPaletteImpl_SetEntries(IWineD3DPalette *iface, DW } }
- /* If the palette is the primary palette, set the entries to the device */ - if(This->Flags & WINEDDPCAPS_PRIMARYSURFACE) { - unsigned int i; - IWineD3DDeviceImpl *device = This->wineD3DDevice; - PALETTEENTRY *entry = PalEnt; - - for(i = Start; i < Start+Count; i++) { - device->palettes[device->currentPalette][i] = *entry++; - } - } - return WINED3D_OK; }
diff --git a/dlls/wined3d/surface_base.c b/dlls/wined3d/surface_base.c index 00efa6c..35d099a 100644 --- a/dlls/wined3d/surface_base.c +++ b/dlls/wined3d/surface_base.c @@ -206,26 +206,16 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPalette(IWineD3DSurface *iface, IWineD if(This->resource.usage & WINED3DUSAGE_RENDERTARGET) This->palette->Flags &= ~WINEDDPCAPS_PRIMARYSURFACE;
+ This->palette = PalImpl; + if(PalImpl != NULL) { if(This->resource.usage & WINED3DUSAGE_RENDERTARGET) { - /* Set the device's main palette if the palette - * wasn't a primary palette before - */ - if(!(PalImpl->Flags & WINEDDPCAPS_PRIMARYSURFACE)) { - IWineD3DDeviceImpl *device = This->resource.wineD3DDevice; - unsigned int i; - - for(i=0; i < 256; i++) { - device->palettes[device->currentPalette][i] = PalImpl->palents[i]; - } - } - (PalImpl)->Flags |= WINEDDPCAPS_PRIMARYSURFACE; } - } - This->palette = PalImpl;
- return IWineD3DSurface_RealizePalette(iface); + return IWineD3DSurface_RealizePalette(iface); + } + else return WINED3D_OK; }
HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetColorKey(IWineD3DSurface *iface, DWORD Flags, WINEDDCOLORKEY *CKey) {