fix a minor bug, for bad writen driver. some drv checking for two
DDRAWI_DDRAWSURFACE_LCL array instead for one. But it is not the bug
Modified: trunk/reactos/lib/ddraw/main/surface.c
_____
Modified: trunk/reactos/lib/ddraw/main/surface.c
--- trunk/reactos/lib/ddraw/main/surface.c 2005-08-09 08:54:56 UTC
(rev 17236)
+++ trunk/reactos/lib/ddraw/main/surface.c 2005-08-09 11:18:48 UTC
(rev 17237)
@@ -49,19 +49,27 @@
Local.lpGbl = &Global;
Local.lpSurfMore = &More;
Local.ddsCaps = *(DDSCAPS*)&pDDSD->ddsCaps;
+
+ // BitDepth = DDSurf_BitDepth(psurf); ?
+
if(pDDSD->ddsCaps.dwCaps == DDSCAPS_PRIMARYSURFACE)
Local.dwFlags |= DDRAWISURF_FRONTBUFFER;
- DDRAWI_DDRAWSURFACE_LCL* pLocal = &Local; // for stupid double
pointer below
+ DDRAWI_DDRAWSURFACE_LCL *pLocal[2]; // for stupid double pointer
below
+ pLocal[0] = &Local;
+ pLocal[1] = NULL;
+
// The Parameter Struct
DDHAL_CREATESURFACEDATA CreateData;
memset(&CreateData, 0, sizeof(DDHAL_CREATESURFACEDATA));
CreateData.lpDD = &This->owner->DirectDrawGlobal;
CreateData.lpDDSurfaceDesc = (DDSURFACEDESC*)pDDSD;
CreateData.dwSCnt = 1;
- CreateData.lplpSList = &pLocal;
+ CreateData.lplpSList = pLocal;
+
+
DDHAL_CANCREATESURFACEDATA CanCreateData;
memset(&CanCreateData, 0, sizeof(DD_CANCREATESURFACEDATA));
Show replies by date