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 */