Fixed a crach. and do not hardcode the flag ddsd to primersurface amd
other value.
Modified: trunk/reactos/lib/ddraw/hal/surface_hal.c
_____
Modified: trunk/reactos/lib/ddraw/hal/surface_hal.c
--- trunk/reactos/lib/ddraw/hal/surface_hal.c 2005-11-01 18:27:09 UTC
(rev 18934)
+++ trunk/reactos/lib/ddraw/hal/surface_hal.c 2005-11-01 18:42:50 UTC
(rev 18935)
@@ -60,11 +60,7 @@
/************ Create Surface ***********************/
- /* FIXME we are skipping filling in some data, I do not care for
now */
-
- LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal =
&This->owner->DirectDrawGlobal;
- This->ddsd.dwFlags = DDSD_CAPS;
- This->ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
+ /* FIXME we are skipping filling in some data, I do not care for
now */
/* surface global struct */
memset(&This->Global, 0, sizeof(DDRAWI_DDRAWSURFACE_GBL));
@@ -72,8 +68,8 @@
This->Global.wHeight =
This->owner->DirectDrawGlobal.vmiData.dwDisplayHeight;
This->Global.wWidth =
This->owner->DirectDrawGlobal.vmiData.dwDisplayWidth;
This->Global.dwLinearSize =
This->owner->DirectDrawGlobal.vmiData.lDisplayPitch;
-
+
/* surface more struct */
memset(&This->More, 0, sizeof(DDRAWI_DDRAWSURFACE_MORE));
This->More.dwSize = sizeof(DDRAWI_DDRAWSURFACE_MORE);
@@ -87,18 +83,17 @@
/* FIXME do a memcopy */
This->Local.ddsCaps = *(DDSCAPS*)&This->ddsd.ddsCaps;
- /* for the double pointer below */
- DDRAWI_DDRAWSURFACE_LCL *pLocal[2];
- pLocal[0] = &This->Local;
- pLocal[1] = NULL;
+ /* for the double pointer below */
+ This->pLocal[0] = &This->Local;
+ This->pLocal[1] = NULL;
/* the parameter struct */
DDHAL_CREATESURFACEDATA CreateData;
memset(&CreateData, 0, sizeof(DDHAL_CREATESURFACEDATA));
- CreateData.lpDD = pDirectDrawGlobal;
+ CreateData.lpDD = &This->owner->DirectDrawGlobal;
CreateData.lpDDSurfaceDesc = (LPDDSURFACEDESC) &This->ddsd;
CreateData.dwSCnt = 1;
- CreateData.lplpSList = pLocal;
+ CreateData.lplpSList = This->pLocal;
CreateData.ddRVal = DD_FALSE;
/* this is the call we were waiting for */
Show replies by date