mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 23:22:57 +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
|
@ -287,6 +287,7 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
|
||||||
* to save time ??
|
* to save time ??
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
mDdCanCreateSurface.lpDD = This->lpLcl->lpGbl;
|
mDdCanCreateSurface.lpDD = This->lpLcl->lpGbl;
|
||||||
mDdCanCreateSurface.bIsDifferentPixelFormat = FALSE; //isDifferentPixelFormat;
|
mDdCanCreateSurface.bIsDifferentPixelFormat = FALSE; //isDifferentPixelFormat;
|
||||||
mDdCanCreateSurface.lpDDSurfaceDesc = (LPDDSURFACEDESC) pDDSD;
|
mDdCanCreateSurface.lpDDSurfaceDesc = (LPDDSURFACEDESC) pDDSD;
|
||||||
|
@ -301,11 +302,18 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
|
||||||
|
|
||||||
mDdCreateSurface.lplpSList = That->lpLcl->lpSurfMore->slist;
|
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)
|
if (pDDSD->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
|
||||||
{
|
{
|
||||||
|
|
||||||
This->lpLcl->lpPrimary = That;
|
This->lpLcl->lpPrimary = That;
|
||||||
|
|
||||||
if (mDdCanCreateSurface.CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
if (mDdCanCreateSurface.CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
||||||
{
|
{
|
||||||
return DDERR_NOTINITIALIZED;
|
return DDERR_NOTINITIALIZED;
|
||||||
|
|
|
@ -540,21 +540,27 @@ Main_DDrawSurface_GetPalette(LPDIRECTDRAWSURFACE7 iface,
|
||||||
|
|
||||||
HRESULT WINAPI
|
HRESULT WINAPI
|
||||||
Main_DDrawSurface_GetPixelFormat(LPDIRECTDRAWSURFACE7 iface,
|
Main_DDrawSurface_GetPixelFormat(LPDIRECTDRAWSURFACE7 iface,
|
||||||
LPDDPIXELFORMAT pDDPixelFormat)
|
LPDDPIXELFORMAT pDDPixelFormat)
|
||||||
{
|
{
|
||||||
LPDDRAWI_DDRAWSURFACE_INT This = (LPDDRAWI_DDRAWSURFACE_INT)iface;
|
LPDDRAWI_DDRAWSURFACE_INT This = (LPDDRAWI_DDRAWSURFACE_INT)iface;
|
||||||
HRESULT retVale = DDERR_INVALIDPARAMS;
|
HRESULT retVale = DDERR_INVALIDPARAMS;
|
||||||
|
|
||||||
DX_WINDBG_trace();
|
DX_WINDBG_trace();
|
||||||
|
|
||||||
/* FIXME is this right ?? */
|
|
||||||
if (pDDPixelFormat != NULL)
|
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));
|
lpDD_lcl->lpGbl->vmiData.ddpfDisplay,sizeof(DDPIXELFORMAT));
|
||||||
|
}
|
||||||
retVale = DD_OK;
|
retVale = DD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
return retVale;
|
return retVale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue