DirectDraw -> WineD3D patch

Peter Beutner p.beutner at gmx.net
Sat Mar 4 20:06:06 CST 2006


Hi
> I'll look at this, the whole palette code is a bit messy. My suspicion is that 
> IDirectDrawPaletteImpl_SetEntries / IWineD3DPaletteImpl_SetEntries doesn't 
> update all surfaces that use a palette. 
That's indeed the reason. Simple fix is to set the rendertarget usage also for 
ddraw offscreen surfaces.Not sure if there are any possible sideeffects of this, 
but until now i haven't seen any.
-------------- next part --------------
f005d3af1e8f4cacf1211c6fc3952acbd4766332
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 34d91da..4b44035 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -1788,8 +1788,8 @@ IDirectDrawImpl_CreateNewSurface(IDirect
             PixelFormat_WineD3DtoDD(&pDDSD->ddpfPixelFormat, Mode.Format);
             Format = Mode.Format;
 
-            /* If it's a off-screen D3D device, set the rendertarget usage */
-            if(pDDSD->ddsCaps.dwCaps & DDSCAPS_3DDEVICE)
+            /* If it's a off-screen D3D/DDraw device, set the rendertarget usage */
+            if(pDDSD->ddsCaps.dwCaps & ( DDSCAPS_3DDEVICE | DDSCAPS_OFFSCREENPLAIN) )
                 Usage |= WINED3DUSAGE_RENDERTARGET;
         }
     }


More information about the wine-devel mailing list