Fixed the "header problems". Modified: trunk/reactos/lib/ddraw/main/surface_main.c Modified: trunk/reactos/lib/ddraw/rosdraw.h _____
Modified: trunk/reactos/lib/ddraw/main/surface_main.c --- trunk/reactos/lib/ddraw/main/surface_main.c 2005-11-01 09:48:01 UTC (rev 18922) +++ trunk/reactos/lib/ddraw/main/surface_main.c 2005-11-01 09:50:29 UTC (rev 18923) @@ -18,39 +18,31 @@
if(sizeof(DDSURFACEDESC2) != pDDSD2->dwSize) return DDERR_UNSUPPORTED;
- This->owner = (IDirectDrawImpl*)pDD;
- /************ fill the discription of our primary surface ***********************/ - DDSURFACEDESC ddsd; - memset (&ddsd, 0, sizeof(DDSURFACEDESC)); - ddsd.dwSize = sizeof(DDSURFACEDESC); + /************ fill the discription of our primary surface ***********************/ + memset (&ddsd, 0, sizeof(DDSURFACEDESC)); + ddsd.dwSize = sizeof(DDSURFACEDESC);
- /* FIXME Fill the rest from ddsd2 to ddsd */ + RtlCopyMemory(&ddsd.ddckCKDestBlt,&pDDSD2->ddckCKDestBlt,sizeof(ddsd.ddc kCKDestBlt)); + RtlCopyMemory(&ddsd.ddckCKDestOverlay,&pDDSD2->ddckCKDestOverlay,sizeof( ddsd.ddckCKDestOverlay)); + RtlCopyMemory(&ddsd.ddckCKSrcBlt,&pDDSD2->ddckCKSrcBlt,sizeof(ddsd.ddckC KSrcBlt)); + RtlCopyMemory(&ddsd.ddckCKSrcOverlay,&pDDSD2->ddckCKSrcOverlay,sizeof(dd sd.ddckCKSrcOverlay)); + RtlCopyMemory(&ddsd.ddpfPixelFormat,&pDDSD2->ddpfPixelFormat,sizeof(ddsd .ddpfPixelFormat)); + RtlCopyMemory(&ddsd.ddsCaps,&pDDSD2->ddsCaps,sizeof(ddsd.ddsCaps));
- RtlCopyMemory(&ddsd.ddckCKDestBlt,&pDDSD2->ddckCKDestBlt,sizeof(ddsd.ddc kCKDestBlt)); - RtlCopyMemory(&ddsd.ddckCKDestOverlay,&pDDSD2->ddckCKDestOverlay,sizeof( ddsd.ddckCKDestOverlay)); - RtlCopyMemory(&ddsd.ddckCKSrcBlt,&pDDSD2->ddckCKSrcBlt,sizeof(ddsd.ddckC KSrcBlt)); - RtlCopyMemory(&ddsd.ddckCKSrcOverlay,&pDDSD2->ddckCKSrcOverlay,sizeof(dd sd.ddckCKSrcOverlay)); - RtlCopyMemory(&ddsd.ddpfPixelFormat,&pDDSD2->ddpfPixelFormat,sizeof(ddsd .ddpfPixelFormat)); - RtlCopyMemory(&ddsd.ddsCaps,&pDDSD2->ddsCaps,sizeof(ddsd.ddsCaps)); + ddsd.dwAlphaBitDepth = pDDSD2->dwAlphaBitDepth; + ddsd.dwBackBufferCount = pDDSD2->dwBackBufferCount; + ddsd.dwFlags = pDDSD2->dwFlags; + ddsd.dwHeight = pDDSD2->dwHeight; + ddsd.dwLinearSize = pDDSD2->dwLinearSize; + ddsd.dwMipMapCount = pDDSD2->dwMipMapCount; + ddsd.dwRefreshRate = pDDSD2->dwRefreshRate; + ddsd.dwReserved = pDDSD2->dwReserved; + ddsd.dwWidth = pDDSD2->dwWidth; + ddsd.lPitch = pDDSD2->lPitch; + ddsd.lpSurface = pDDSD2->lpSurface;
- ddsd.dwAlphaBitDepth = pDDSD2->dwAlphaBitDepth; - ddsd.dwBackBufferCount = pDDSD2->dwBackBufferCount; - ddsd.dwFlags = pDDSD2->dwFlags; - ddsd.dwHeight = pDDSD2->dwHeight; - /* FIXME ddsd.dwLinearSize = pDDSD2->dwLinearSize; Problem with our header for dx */ - ddsd.dwMipMapCount = pDDSD2->dwMipMapCount; - ddsd.dwRefreshRate = pDDSD2->dwRefreshRate; - ddsd.dwReserved = pDDSD2->dwReserved; - ddsd.dwWidth = pDDSD2->dwWidth; - /* FIXME ddsd.dwZBufferBitDepth where in pDDSD2 */ - /* FIXME ddsd.lPitch = pDDSD2->lPitch; Problem with our header for dx */ - ddsd.lpSurface = pDDSD2->lpSurface; - - - - /************ Test see if we can Create Surface ***********************/ if (This->owner->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_CANCREATESURFACE) { @@ -67,7 +59,6 @@ return CanCreateData.ddRVal; }
- /************ Create Surface ***********************/
/* FIXME we are skipping filling in some data, I do not care for now */ @@ -109,9 +100,8 @@ CreateData.lpDDSurfaceDesc = (LPDDSURFACEDESC) &ddsd; CreateData.dwSCnt = 1; CreateData.lplpSList = pLocal; - CreateData.ddRVal = DD_FALSE; + CreateData.ddRVal = DD_FALSE; - /* this is the call we were waiting for */
if(This->owner->DirectDrawGlobal.lpDDCBtmp->HALDD.CreateSurface(&CreateD ata) == DDHAL_DRIVER_NOTHANDLED) return DDERR_INVALIDPARAMS; _____
Modified: trunk/reactos/lib/ddraw/rosdraw.h --- trunk/reactos/lib/ddraw/rosdraw.h 2005-11-01 09:48:01 UTC (rev 18922) +++ trunk/reactos/lib/ddraw/rosdraw.h 2005-11-01 09:50:29 UTC (rev 18923) @@ -45,6 +45,7 @@
DDRAWI_DDRAWSURFACE_MORE More; DDRAWI_DDRAWSURFACE_LCL Local; DDRAWI_DDRAWSURFACE_LCL *pLocal[2]; + DDSURFACEDESC ddsd;
} IDirectDrawSurfaceImpl;