Implement DdCreateSurface not tested. 
Bugfix the prototyped. 

svn path=/trunk/; revision=23162
This commit is contained in:
Magnus Olsen 2006-07-18 23:56:48 +00:00
parent d457403caf
commit fdcc54dc69
2 changed files with 44 additions and 4 deletions

View file

@ -68,9 +68,49 @@ DdCanCreateSurface(LPDDHAL_CANCREATESURFACEDATA pccsd)
}
DWORD CALLBACK
DdCreateSurface(PDD_CREATESURFACEDATA lpCreateSurface)
DdCreateSurface(LPDDHAL_CREATESURFACEDATA pcsd)
{
lpCreateSurface->ddRVal = DDERR_GENERIC;
return DDHAL_DRIVER_NOTHANDLED;
int i;
if (pcsd->dwSCnt == 1)
{
pcsd->ddRVal = DDERR_GENERIC;
return DDHAL_DRIVER_NOTHANDLED;
}
for (i=0; i<(int)pcsd->dwSCnt; i++)
{
pcsd->lplpSList[i]->lpGbl->lPitch = (DWORD)(pcsd->lplpSList[i]->lpGbl->wWidth *
(pcsd->lplpSList[i]->lpGbl->ddpfSurface.dwRGBBitCount / 8));
pcsd->lplpSList[i]->lpGbl->dwBlockSizeX = pcsd->lplpSList[i]->lpGbl->lPitch *
(DWORD)(pcsd->lplpSList[i]->lpGbl->wHeight);
pcsd->lplpSList[i]->lpGbl->dwBlockSizeY = 1;
if ( pcsd->lplpSList[i] ->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
{
/* We maybe should alloc it with EngAlloc
for now we trusting ddraw alloc it */
pcsd->lplpSList[i]->lpGbl->fpVidMem = 0;
}
else
{
/* We maybe should alloc it with EngAlloc
for now we trusting ddraw alloc it */
pcsd->lplpSList[i]->lpGbl->fpVidMem = DDHAL_PLEASEALLOC_BLOCKSIZE;
}
pcsd->lpDDSurfaceDesc->lPitch = pcsd->lplpSList[i]->lpGbl->lPitch;
pcsd->lpDDSurfaceDesc->dwFlags |= DDSD_PITCH;
} // for i
pcsd->ddRVal = DD_OK;
return DDHAL_DRIVER_HANDLED;
}

View file

@ -82,7 +82,7 @@ DWORD CALLBACK
DdCanCreateSurface( LPDDHAL_CANCREATESURFACEDATA pccsd );
DWORD CALLBACK
DdCreateSurface(PDD_CREATESURFACEDATA lpCreateSurface);
DdCreateSurface(LPDDHAL_CREATESURFACEDATA pcsd);
VOID STDCALL
DrvDisableDirectDraw(