mirror of
https://github.com/reactos/reactos.git
synced 2025-04-22 13:10:39 +00:00
Implement full support for GetPixelFormat
svn path=/trunk/; revision=25153
This commit is contained in:
parent
ac78b1e624
commit
fc31996a7d
2 changed files with 19 additions and 5 deletions
|
@ -286,6 +286,7 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
|
|||
* in startup and do a cache of it
|
||||
* to save time ??
|
||||
*/
|
||||
|
||||
|
||||
mDdCanCreateSurface.lpDD = This->lpLcl->lpGbl;
|
||||
mDdCanCreateSurface.bIsDifferentPixelFormat = FALSE; //isDifferentPixelFormat;
|
||||
|
@ -301,11 +302,18 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
|
|||
|
||||
mDdCreateSurface.lplpSList = That->lpLcl->lpSurfMore->slist;
|
||||
|
||||
/* setup DDSD */
|
||||
if (pDDSD->dwFlags & DDSD_PIXELFORMAT)
|
||||
{
|
||||
That->lpLcl->dwFlags |= DDRAWISURF_HASPIXELFORMAT;
|
||||
memcpy(&That->lpLcl->lpGbl->ddpfSurface,&pDDSD->ddpfPixelFormat, sizeof(DDPIXELFORMAT));
|
||||
}
|
||||
|
||||
/* Create the surface */
|
||||
if (pDDSD->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
|
||||
{
|
||||
|
||||
This->lpLcl->lpPrimary = That;
|
||||
|
||||
if (mDdCanCreateSurface.CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
||||
{
|
||||
return DDERR_NOTINITIALIZED;
|
||||
|
|
|
@ -540,21 +540,27 @@ Main_DDrawSurface_GetPalette(LPDIRECTDRAWSURFACE7 iface,
|
|||
|
||||
HRESULT WINAPI
|
||||
Main_DDrawSurface_GetPixelFormat(LPDIRECTDRAWSURFACE7 iface,
|
||||
LPDDPIXELFORMAT pDDPixelFormat)
|
||||
LPDDPIXELFORMAT pDDPixelFormat)
|
||||
{
|
||||
LPDDRAWI_DDRAWSURFACE_INT This = (LPDDRAWI_DDRAWSURFACE_INT)iface;
|
||||
HRESULT retVale = DDERR_INVALIDPARAMS;
|
||||
|
||||
DX_WINDBG_trace();
|
||||
|
||||
/* FIXME is this right ?? */
|
||||
if (pDDPixelFormat != NULL)
|
||||
{
|
||||
memcpy(pDDPixelFormat,&This->lpLcl->lpSurfMore->
|
||||
if (This->lpLcl->dwFlags & DDRAWISURF_HASPIXELFORMAT)
|
||||
{
|
||||
memcpy(pDDPixelFormat,&This->lpLcl->lpGbl->ddpfSurface,sizeof(DDPIXELFORMAT));
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy(pDDPixelFormat,&This->lpLcl->lpSurfMore->
|
||||
lpDD_lcl->lpGbl->vmiData.ddpfDisplay,sizeof(DDPIXELFORMAT));
|
||||
|
||||
}
|
||||
retVale = DD_OK;
|
||||
}
|
||||
|
||||
return retVale;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue