ddraw patch

Ove Kaaven ovehk at ping.uio.no
Tue Jul 9 16:27:18 CDT 2002


Though my workload is still high, I've decided that I may still as well
start submitting ddraw patches while waiting for compiles and debug runs
and stuff, if I start with small patches. I'm submitting them directly to
Wine because they may lead to DLL separation of ddraw, which is good for
everybody, and they may make resurrecting Wine's DGA support easier,
something many users seem to want around here.

I'll start with a simple patch that will make the dwFlags field of the
palette object available to the HAL (in the x11drv).

Log:
Ove Kaaven <ovek at transgaming.com>
Removed the flags fields of IDirectDrawPaletteImpl, as we should use the
dwFlags field of DDRAWI_DDRAWPALETTE_GBL structure instead.

Index: wine/dlls/ddraw/ddraw_private.h
diff -u wine/dlls/ddraw/ddraw_private.h:1.1.1.11 wine/dlls/ddraw/ddraw_private.h:1.50
--- wine/dlls/ddraw/ddraw_private.h:1.1.1.11	Fri Apr 19 08:47:14 2002
+++ wine/dlls/ddraw/ddraw_private.h	Tue Jun 18 19:30:46 2002
@@ -153,7 +193,6 @@
     DDRAWI_DDRAWPALETTE_GBL global;
 
     /* IDirectDrawPalette fields */
-    DWORD		flags;
     HPALETTE		hpal;
     WORD		palVersion, palNumEntries; /* LOGPALETTE */
     PALETTEENTRY	palents[256];
Index: wine/dlls/ddraw/dsurface/main.c
diff -u wine/dlls/ddraw/dsurface/main.c:1.1.1.13 wine/dlls/ddraw/dsurface/main.c:1.60
--- wine/dlls/ddraw/dsurface/main.c:1.1.1.13	Thu Oct  4 06:42:59 2001
+++ wine/dlls/ddraw/dsurface/main.c	Wed Jun 12 16:25:44 2002
@@ -1048,7 +1174,7 @@
 
     if (This->palette != NULL) {
 	if (This->surface_desc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
-	    This->palette->flags &= ~DDPCAPS_PRIMARYSURFACE;
+	    This->palette->global.dwFlags &= ~DDPCAPS_PRIMARYSURFACE;
 	IDirectDrawPalette_Release(ICOM_INTERFACE(This->palette,
 						  IDirectDrawPalette));
     }
@@ -1058,7 +1184,7 @@
     if (pPalette != NULL) {
 	IDirectDrawPalette_AddRef(pPalette);
 	if (This->surface_desc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
-	    This->palette->flags |= DDPCAPS_PRIMARYSURFACE;
+	    This->palette->global.dwFlags |= DDPCAPS_PRIMARYSURFACE;
     }
 
     This->set_palette(This, This->palette);
Index: wine/dlls/ddraw/dpalette/main.c
diff -u wine/dlls/ddraw/dpalette/main.c:1.1.1.3 wine/dlls/ddraw/dpalette/main.c:1.8
--- wine/dlls/ddraw/dpalette/main.c:1.1.1.3	Thu Apr 19 10:57:58 2001
+++ wine/dlls/ddraw/dpalette/main.c	Wed Jun 12 16:25:43 2002
@@ -35,7 +35,6 @@
     if (dwFlags & DDPCAPS_8BITENTRIES)
 	WARN("creating palette with 8 bit entries\n");
 
-    This->flags = dwFlags;
     This->palNumEntries = Main_DirectDrawPalette_Size(dwFlags);
     This->ref = 1;
 
@@ -43,6 +42,7 @@
     This->local.lpDD_lcl = &pDD->local;
     This->global.lpDD_lcl = &pDD->local;
     This->global.dwProcessId = GetCurrentProcessId();
+    This->global.dwFlags = dwFlags;
 
     This->final_release = Main_DirectDrawPalette_final_release;
     ICOM_INIT_INTERFACE(This, IDirectDrawPalette, DDRAW_Main_Palette_VTable);
@@ -102,10 +102,10 @@
 	  palent);
 
     if (dwFlags != 0) return DDERR_INVALIDPARAMS; /* unchecked */
-    if (dwStart + dwCount > Main_DirectDrawPalette_Size(This->flags))
+    if (dwStart + dwCount > Main_DirectDrawPalette_Size(This->global.dwFlags))
 	return DDERR_INVALIDPARAMS;
 
-    if (This->flags & DDPCAPS_8BITENTRIES)
+    if (This->global.dwFlags & DDPCAPS_8BITENTRIES)
     {
 	int i;
 	LPBYTE entry = (LPBYTE)palent;
@@ -129,7 +129,7 @@
     TRACE("(%p)->SetEntries(%08lx,%ld,%ld,%p)\n",This,dwFlags,dwStart,dwCount,
 	  palent);
 
-    if (This->flags & DDPCAPS_8BITENTRIES)
+    if (This->global.dwFlags & DDPCAPS_8BITENTRIES)
     {
 	int i;
 	const BYTE* entry = (const BYTE*)palent;
@@ -143,7 +143,7 @@
 	if (This->hpal)
 	    SetPaletteEntries(This->hpal, dwStart, dwCount, This->palents+dwStart);
 
-	if (This->flags & DDPCAPS_PRIMARYSURFACE) {
+	if (This->global.dwFlags & DDPCAPS_PRIMARYSURFACE) {
 	    /* update physical palette */
 	    LPDIRECTDRAWSURFACE7 psurf = NULL;
 	    IDirectDraw7_GetGDISurface(ICOM_INTERFACE(This->ddraw_owner,IDirectDraw7), &psurf);
@@ -227,7 +227,7 @@
    ICOM_THIS(IDirectDrawPaletteImpl,iface);
    TRACE("(%p)->(%p)\n",This,lpdwCaps);
 
-   *lpdwCaps = This->flags;
+   *lpdwCaps = This->global.dwFlags;
 
    return DD_OK;
 } 




More information about the wine-patches mailing list