mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 09:52:56 +00:00
1. Implement almost full dx hal DdBlt into ddraw
we only need adding clipper or not set it to true or false. Then ddraw dx hal blt is complete 2. Split complete each surface getting own memory 3. Remove create for overlay for now the code need be more tested svn path=/trunk/; revision=21510
This commit is contained in:
parent
ef869b1127
commit
407b2b297d
2 changed files with 128 additions and 132 deletions
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
HRESULT Hal_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD, IDirectDrawSurfaceImpl *ppSurf, IUnknown *pUnkOuter)
|
HRESULT Hal_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD, IDirectDrawSurfaceImpl *ppSurf, IUnknown *pUnkOuter)
|
||||||
{
|
{
|
||||||
UINT i;
|
//UINT i;
|
||||||
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
|
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
|
||||||
IDirectDrawSurfaceImpl* That = ppSurf;
|
IDirectDrawSurfaceImpl* That = ppSurf;
|
||||||
|
|
||||||
|
@ -28,11 +28,12 @@ HRESULT Hal_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDS
|
||||||
mDdCreateSurface.CreateSurface = This->mCallbacks.HALDD.CreateSurface;
|
mDdCreateSurface.CreateSurface = This->mCallbacks.HALDD.CreateSurface;
|
||||||
|
|
||||||
if (pDDSD->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
|
if (pDDSD->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
|
||||||
{
|
{
|
||||||
memcpy(&This->mddsdPrimary,pDDSD,sizeof(DDSURFACEDESC));
|
|
||||||
This->mddsdPrimary.dwSize = sizeof(DDSURFACEDESC);
|
memcpy(&That->Surf->mddsdPrimary,pDDSD,sizeof(DDSURFACEDESC));
|
||||||
|
That->Surf->mddsdPrimary.dwSize = sizeof(DDSURFACEDESC);
|
||||||
mDdCanCreateSurface.bIsDifferentPixelFormat = FALSE;
|
mDdCanCreateSurface.bIsDifferentPixelFormat = FALSE;
|
||||||
mDdCanCreateSurface.lpDDSurfaceDesc = &This->mddsdPrimary;
|
mDdCanCreateSurface.lpDDSurfaceDesc = &That->Surf->mddsdPrimary;
|
||||||
|
|
||||||
if (This->mHALInfo.lpDDCallbacks->CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
if (This->mHALInfo.lpDDCallbacks->CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
||||||
{
|
{
|
||||||
|
@ -44,31 +45,31 @@ HRESULT Hal_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDS
|
||||||
return DDERR_NOTINITIALIZED;
|
return DDERR_NOTINITIALIZED;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&This->mPrimaryGlobal, 0, sizeof(DDRAWI_DDRAWSURFACE_GBL));
|
memset(&That->Surf->mPrimaryGlobal, 0, sizeof(DDRAWI_DDRAWSURFACE_GBL));
|
||||||
This->mPrimaryGlobal.dwGlobalFlags = DDRAWISURFGBL_ISGDISURFACE;
|
That->Surf->mPrimaryGlobal.dwGlobalFlags = DDRAWISURFGBL_ISGDISURFACE;
|
||||||
This->mPrimaryGlobal.lpDD = &This->mDDrawGlobal;
|
That->Surf->mPrimaryGlobal.lpDD = &This->mDDrawGlobal;
|
||||||
This->mPrimaryGlobal.lpDDHandle = &This->mDDrawGlobal;
|
That->Surf->mPrimaryGlobal.lpDDHandle = &This->mDDrawGlobal;
|
||||||
This->mPrimaryGlobal.wWidth = (WORD)This->mpModeInfos[0].dwWidth;
|
That->Surf->mPrimaryGlobal.wWidth = (WORD)This->mpModeInfos[0].dwWidth;
|
||||||
This->mPrimaryGlobal.wHeight = (WORD)This->mpModeInfos[0].dwHeight;
|
That->Surf->mPrimaryGlobal.wHeight = (WORD)This->mpModeInfos[0].dwHeight;
|
||||||
This->mPrimaryGlobal.lPitch = This->mpModeInfos[0].lPitch;
|
That->Surf->mPrimaryGlobal.lPitch = This->mpModeInfos[0].lPitch;
|
||||||
|
|
||||||
memset(&This->mPrimaryMore, 0, sizeof(DDRAWI_DDRAWSURFACE_MORE));
|
memset(&That->Surf->mPrimaryMore, 0, sizeof(DDRAWI_DDRAWSURFACE_MORE));
|
||||||
This->mPrimaryMore.dwSize = sizeof(DDRAWI_DDRAWSURFACE_MORE);
|
That->Surf->mPrimaryMore.dwSize = sizeof(DDRAWI_DDRAWSURFACE_MORE);
|
||||||
|
|
||||||
memset(&This->mPrimaryLocal, 0, sizeof(DDRAWI_DDRAWSURFACE_LCL));
|
memset(&That->Surf->mPrimaryLocal, 0, sizeof(DDRAWI_DDRAWSURFACE_LCL));
|
||||||
This->mPrimaryLocal.lpGbl = &This->mPrimaryGlobal;
|
That->Surf->mPrimaryLocal.lpGbl = &That->Surf->mPrimaryGlobal;
|
||||||
This->mPrimaryLocal.lpSurfMore = &This->mPrimaryMore;
|
That->Surf->mPrimaryLocal.lpSurfMore = &That->Surf->mPrimaryMore;
|
||||||
This->mPrimaryLocal.dwProcessId = GetCurrentProcessId();
|
That->Surf->mPrimaryLocal.dwProcessId = GetCurrentProcessId();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
FIXME Check the flags if we shall create a primaresurface for overlay or something else
|
FIXME Check the flags if we shall create a primaresurface for overlay or something else
|
||||||
Examine windows which flags are being set for we assume this is right unsue I think
|
Examine windows which flags are being set for we assume this is right unsue I think
|
||||||
*/
|
*/
|
||||||
//This->mPrimaryLocal.dwFlags = DDRAWISURF_PARTOFPRIMARYCHAIN|DDRAWISURF_HASOVERLAYDATA;
|
//That->Surf->mPrimaryLocal.dwFlags = DDRAWISURF_PARTOFPRIMARYCHAIN|DDRAWISURF_HASOVERLAYDATA;
|
||||||
This->mPrimaryLocal.ddsCaps.dwCaps = This->mddsdPrimary.ddsCaps.dwCaps;
|
That->Surf->mPrimaryLocal.ddsCaps.dwCaps = That->Surf->mddsdPrimary.ddsCaps.dwCaps;
|
||||||
That->Surf->mpPrimaryLocals[0] = &This->mPrimaryLocal;
|
That->Surf->mpPrimaryLocals[0] = &That->Surf->mPrimaryLocal;
|
||||||
|
|
||||||
mDdCreateSurface.lpDDSurfaceDesc = &This->mddsdPrimary;
|
mDdCreateSurface.lpDDSurfaceDesc = &That->Surf->mddsdPrimary;
|
||||||
mDdCreateSurface.lplpSList = That->Surf->mpPrimaryLocals;
|
mDdCreateSurface.lplpSList = That->Surf->mpPrimaryLocals;
|
||||||
mDdCreateSurface.dwSCnt = This->mDDrawGlobal.dsList->dwIntRefCnt ;
|
mDdCreateSurface.dwSCnt = This->mDDrawGlobal.dsList->dwIntRefCnt ;
|
||||||
|
|
||||||
|
@ -87,121 +88,122 @@ HRESULT Hal_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDS
|
||||||
}
|
}
|
||||||
else if (pDDSD->ddsCaps.dwCaps & DDSCAPS_OVERLAY)
|
else if (pDDSD->ddsCaps.dwCaps & DDSCAPS_OVERLAY)
|
||||||
{
|
{
|
||||||
//memset(&This->mddsdOverlay, 0, sizeof(DDSURFACEDESC));
|
////memset(&This->mddsdOverlay, 0, sizeof(DDSURFACEDESC));
|
||||||
memcpy(&This->mddsdOverlay,pDDSD,sizeof(DDSURFACEDESC));
|
//memcpy(&This->mddsdOverlay,pDDSD,sizeof(DDSURFACEDESC));
|
||||||
This->mddsdOverlay.dwSize = sizeof(DDSURFACEDESC);
|
//This->mddsdOverlay.dwSize = sizeof(DDSURFACEDESC);
|
||||||
//This->mddsdOverlay.dwFlags = DDSD_CAPS | DDSD_PIXELFORMAT | DDSD_BACKBUFFERCOUNT | DDSD_WIDTH | DDSD_HEIGHT;
|
////This->mddsdOverlay.dwFlags = DDSD_CAPS | DDSD_PIXELFORMAT | DDSD_BACKBUFFERCOUNT | DDSD_WIDTH | DDSD_HEIGHT;
|
||||||
|
|
||||||
//This->mddsdOverlay.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM | DDSCAPS_COMPLEX | DDSCAPS_FLIP;
|
////This->mddsdOverlay.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM | DDSCAPS_COMPLEX | DDSCAPS_FLIP;
|
||||||
|
|
||||||
//This->mddsdOverlay.dwWidth = 100; //pels;
|
////This->mddsdOverlay.dwWidth = 100; //pels;
|
||||||
//This->mddsdOverlay.dwHeight = 100; // lines;
|
////This->mddsdOverlay.dwHeight = 100; // lines;
|
||||||
//This->mddsdOverlay.dwBackBufferCount = 1; //cBuffers;
|
////This->mddsdOverlay.dwBackBufferCount = 1; //cBuffers;
|
||||||
|
|
||||||
//This->mddsdOverlay.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
|
////This->mddsdOverlay.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
|
||||||
//This->mddsdOverlay.ddpfPixelFormat.dwFlags = DDPF_RGB;
|
////This->mddsdOverlay.ddpfPixelFormat.dwFlags = DDPF_RGB;
|
||||||
//This->mddsdOverlay.ddpfPixelFormat.dwRGBBitCount = 32;
|
////This->mddsdOverlay.ddpfPixelFormat.dwRGBBitCount = 32;
|
||||||
|
|
||||||
mDdCanCreateSurface.lpDD = &This->mDDrawGlobal;
|
//mDdCanCreateSurface.lpDD = &This->mDDrawGlobal;
|
||||||
mDdCanCreateSurface.CanCreateSurface = This->mCallbacks.HALDD.CanCreateSurface;
|
//mDdCanCreateSurface.CanCreateSurface = This->mCallbacks.HALDD.CanCreateSurface;
|
||||||
mDdCanCreateSurface.bIsDifferentPixelFormat = TRUE; //isDifferentPixelFormat;
|
//mDdCanCreateSurface.bIsDifferentPixelFormat = TRUE; //isDifferentPixelFormat;
|
||||||
mDdCanCreateSurface.lpDDSurfaceDesc = &This->mddsdOverlay; // pDDSD;
|
//mDdCanCreateSurface.lpDDSurfaceDesc = &This->mddsdOverlay; // pDDSD;
|
||||||
|
|
||||||
|
|
||||||
if (This->mHALInfo.lpDDCallbacks->CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
//if (This->mHALInfo.lpDDCallbacks->CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
||||||
{
|
//{
|
||||||
return DDERR_NOTINITIALIZED;
|
// return DDERR_NOTINITIALIZED;
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (mDdCanCreateSurface.ddRVal != DD_OK)
|
//if (mDdCanCreateSurface.ddRVal != DD_OK)
|
||||||
{
|
//{
|
||||||
return DDERR_NOTINITIALIZED;
|
// return DDERR_NOTINITIALIZED;
|
||||||
}
|
//}
|
||||||
|
|
||||||
memset(&This->mOverlayGlobal, 0, sizeof(DDRAWI_DDRAWSURFACE_GBL));
|
//memset(&This->mOverlayGlobal, 0, sizeof(DDRAWI_DDRAWSURFACE_GBL));
|
||||||
This->mOverlayGlobal.dwGlobalFlags = 0;
|
//This->mOverlayGlobal.dwGlobalFlags = 0;
|
||||||
This->mOverlayGlobal.lpDD = &This->mDDrawGlobal;
|
//This->mOverlayGlobal.lpDD = &This->mDDrawGlobal;
|
||||||
This->mOverlayGlobal.lpDDHandle = &This->mDDrawGlobal;
|
//This->mOverlayGlobal.lpDDHandle = &This->mDDrawGlobal;
|
||||||
This->mOverlayGlobal.wWidth = (WORD)This->mddsdOverlay.dwWidth;
|
//This->mOverlayGlobal.wWidth = (WORD)This->mddsdOverlay.dwWidth;
|
||||||
This->mOverlayGlobal.wHeight = (WORD)This->mddsdOverlay.dwHeight;
|
//This->mOverlayGlobal.wHeight = (WORD)This->mddsdOverlay.dwHeight;
|
||||||
This->mOverlayGlobal.lPitch = -1;
|
//This->mOverlayGlobal.lPitch = -1;
|
||||||
This->mOverlayGlobal.ddpfSurface = This->mddsdOverlay.ddpfPixelFormat;
|
//This->mOverlayGlobal.ddpfSurface = This->mddsdOverlay.ddpfPixelFormat;
|
||||||
|
|
||||||
// setup front- and backbuffer surfaces
|
//// setup front- and backbuffer surfaces
|
||||||
UINT cSurfaces = This->mddsdOverlay.dwBackBufferCount + 1;
|
//UINT cSurfaces = This->mddsdOverlay.dwBackBufferCount + 1;
|
||||||
for (i = 0; i < cSurfaces; i++)
|
//for (i = 0; i < cSurfaces; i++)
|
||||||
{
|
//{
|
||||||
memset(&This->mOverlayMore[i], 0, sizeof(DDRAWI_DDRAWSURFACE_MORE));
|
// memset(&This->mOverlayMore[i], 0, sizeof(DDRAWI_DDRAWSURFACE_MORE));
|
||||||
This->mOverlayMore[i].dwSize = sizeof(DDRAWI_DDRAWSURFACE_MORE);
|
// This->mOverlayMore[i].dwSize = sizeof(DDRAWI_DDRAWSURFACE_MORE);
|
||||||
|
|
||||||
memset(&This->mOverlayLocal[i], 0, sizeof(DDRAWI_DDRAWSURFACE_LCL));
|
// memset(&This->mOverlayLocal[i], 0, sizeof(DDRAWI_DDRAWSURFACE_LCL));
|
||||||
This->mOverlayLocal[i].lpGbl = &This->mOverlayGlobal;
|
// This->mOverlayLocal[i].lpGbl = &This->mOverlayGlobal;
|
||||||
This->mOverlayLocal[i].lpSurfMore = &This->mOverlayMore[i];
|
// This->mOverlayLocal[i].lpSurfMore = &This->mOverlayMore[i];
|
||||||
This->mOverlayLocal[i].dwProcessId = GetCurrentProcessId();
|
// This->mOverlayLocal[i].dwProcessId = GetCurrentProcessId();
|
||||||
This->mOverlayLocal[i].dwFlags = (i == 0) ?
|
// This->mOverlayLocal[i].dwFlags = (i == 0) ?
|
||||||
(DDRAWISURF_IMPLICITROOT|DDRAWISURF_FRONTBUFFER):
|
// (DDRAWISURF_IMPLICITROOT|DDRAWISURF_FRONTBUFFER):
|
||||||
(DDRAWISURF_IMPLICITCREATE|DDRAWISURF_BACKBUFFER);
|
// (DDRAWISURF_IMPLICITCREATE|DDRAWISURF_BACKBUFFER);
|
||||||
|
|
||||||
This->mOverlayLocal[i].dwFlags |= DDRAWISURF_ATTACHED|DDRAWISURF_ATTACHED_FROM| DDRAWISURF_HASPIXELFORMAT| DDRAWISURF_HASOVERLAYDATA;
|
// This->mOverlayLocal[i].dwFlags |= DDRAWISURF_ATTACHED|DDRAWISURF_ATTACHED_FROM| DDRAWISURF_HASPIXELFORMAT| DDRAWISURF_HASOVERLAYDATA;
|
||||||
|
|
||||||
This->mOverlayLocal[i].ddsCaps.dwCaps = This->mddsdOverlay.ddsCaps.dwCaps;
|
// This->mOverlayLocal[i].ddsCaps.dwCaps = This->mddsdOverlay.ddsCaps.dwCaps;
|
||||||
This->mpOverlayLocals[i] = &This->mOverlayLocal[i];
|
// This->mpOverlayLocals[i] = &This->mOverlayLocal[i];
|
||||||
}
|
//}
|
||||||
|
|
||||||
for (i = 0; i < cSurfaces; i++)
|
//for (i = 0; i < cSurfaces; i++)
|
||||||
{
|
//{
|
||||||
UINT j = (i + 1) % cSurfaces;
|
// UINT j = (i + 1) % cSurfaces;
|
||||||
if (!DdAttachSurface(This->mpOverlayLocals[i], This->mpOverlayLocals[j]))
|
// if (!DdAttachSurface(This->mpOverlayLocals[i], This->mpOverlayLocals[j]))
|
||||||
{
|
// {
|
||||||
// derr(L"DirectDrawImpl[%08x]::__setupDevice DdAttachSurface(%d, %d) failed", this, i, j);
|
// // derr(L"DirectDrawImpl[%08x]::__setupDevice DdAttachSurface(%d, %d) failed", this, i, j);
|
||||||
return DD_FALSE;
|
// return DD_FALSE;
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
mDdCreateSurface.lpDD = &This->mDDrawGlobal;
|
//mDdCreateSurface.lpDD = &This->mDDrawGlobal;
|
||||||
mDdCreateSurface.CreateSurface = This->mCallbacks.HALDD.CreateSurface;
|
//mDdCreateSurface.CreateSurface = This->mCallbacks.HALDD.CreateSurface;
|
||||||
mDdCreateSurface.lpDDSurfaceDesc = &This->mddsdOverlay;//pDDSD;
|
//mDdCreateSurface.lpDDSurfaceDesc = &This->mddsdOverlay;//pDDSD;
|
||||||
mDdCreateSurface.lplpSList = This->mpOverlayLocals; //cSurfaces;
|
//mDdCreateSurface.lplpSList = This->mpOverlayLocals; //cSurfaces;
|
||||||
mDdCreateSurface.dwSCnt = 1 ; //ppSurfaces;
|
//mDdCreateSurface.dwSCnt = 1 ; //ppSurfaces;
|
||||||
|
|
||||||
if (This->mHALInfo.lpDDCallbacks->CreateSurface(&mDdCreateSurface) == DDHAL_DRIVER_NOTHANDLED)
|
//if (This->mHALInfo.lpDDCallbacks->CreateSurface(&mDdCreateSurface) == DDHAL_DRIVER_NOTHANDLED)
|
||||||
{
|
//{
|
||||||
return DDERR_NOTINITIALIZED;
|
// return DDERR_NOTINITIALIZED;
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (mDdCreateSurface.ddRVal != DD_OK)
|
//if (mDdCreateSurface.ddRVal != DD_OK)
|
||||||
{
|
//{
|
||||||
return mDdCreateSurface.ddRVal;
|
// return mDdCreateSurface.ddRVal;
|
||||||
}
|
//}
|
||||||
|
|
||||||
DDHAL_UPDATEOVERLAYDATA mDdUpdateOverlay;
|
//DDHAL_UPDATEOVERLAYDATA mDdUpdateOverlay;
|
||||||
mDdUpdateOverlay.lpDD = &This->mDDrawGlobal;
|
//mDdUpdateOverlay.lpDD = &This->mDDrawGlobal;
|
||||||
mDdUpdateOverlay.UpdateOverlay = This->mCallbacks.HALDDSurface.UpdateOverlay;
|
//mDdUpdateOverlay.UpdateOverlay = This->mCallbacks.HALDDSurface.UpdateOverlay;
|
||||||
mDdUpdateOverlay.lpDDDestSurface = That->Surf->mpPrimaryLocals[0];
|
//mDdUpdateOverlay.lpDDDestSurface = That->Surf->mpPrimaryLocals[0];
|
||||||
mDdUpdateOverlay.lpDDSrcSurface = This->mpOverlayLocals[0];//pDDSurface;
|
//mDdUpdateOverlay.lpDDSrcSurface = This->mpOverlayLocals[0];//pDDSurface;
|
||||||
mDdUpdateOverlay.dwFlags = DDOVER_SHOW;
|
//mDdUpdateOverlay.dwFlags = DDOVER_SHOW;
|
||||||
|
|
||||||
mDdUpdateOverlay.rDest.top = 0;
|
//mDdUpdateOverlay.rDest.top = 0;
|
||||||
mDdUpdateOverlay.rDest.left = 0;
|
//mDdUpdateOverlay.rDest.left = 0;
|
||||||
mDdUpdateOverlay.rDest.right = 50;
|
//mDdUpdateOverlay.rDest.right = 50;
|
||||||
mDdUpdateOverlay.rDest.bottom = 50;
|
//mDdUpdateOverlay.rDest.bottom = 50;
|
||||||
|
|
||||||
mDdUpdateOverlay.rSrc.top = 0;
|
//mDdUpdateOverlay.rSrc.top = 0;
|
||||||
mDdUpdateOverlay.rSrc.left = 0;
|
//mDdUpdateOverlay.rSrc.left = 0;
|
||||||
mDdUpdateOverlay.rSrc.right = 50;
|
//mDdUpdateOverlay.rSrc.right = 50;
|
||||||
mDdUpdateOverlay.rSrc.bottom = 50;
|
//mDdUpdateOverlay.rSrc.bottom = 50;
|
||||||
|
|
||||||
if (mDdUpdateOverlay.UpdateOverlay(&mDdUpdateOverlay) == DDHAL_DRIVER_NOTHANDLED)
|
//if (mDdUpdateOverlay.UpdateOverlay(&mDdUpdateOverlay) == DDHAL_DRIVER_NOTHANDLED)
|
||||||
{
|
//{
|
||||||
return DDERR_NOTINITIALIZED;
|
// return DDERR_NOTINITIALIZED;
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (mDdUpdateOverlay.ddRVal != DD_OK)
|
//if (mDdUpdateOverlay.ddRVal != DD_OK)
|
||||||
{
|
//{
|
||||||
return mDdUpdateOverlay.ddRVal;
|
// return mDdUpdateOverlay.ddRVal;
|
||||||
}
|
//}
|
||||||
|
|
||||||
return DD_OK;
|
//return DD_OK;
|
||||||
|
return DDERR_INVALIDSURFACETYPE;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (pDDSD->ddsCaps.dwCaps & DDSCAPS_BACKBUFFER)
|
else if (pDDSD->ddsCaps.dwCaps & DDSCAPS_BACKBUFFER)
|
||||||
|
@ -277,7 +279,7 @@ HRESULT Hal_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7 iface, LPRECT rDest,
|
||||||
|
|
||||||
mDdBlt.dwFlags = dwFlags;
|
mDdBlt.dwFlags = dwFlags;
|
||||||
|
|
||||||
This->Surf->mpPrimaryLocals[0]->hDC = This->owner->mDDrawGlobal.lpExclusiveOwner->hDC;
|
// This->Surf->mpPrimaryLocals[0]->hDC = This->owner->mDDrawGlobal.lpExclusiveOwner->hDC;
|
||||||
|
|
||||||
// FIXME dectect if it clipped or not
|
// FIXME dectect if it clipped or not
|
||||||
mDdBlt.IsClipped = FALSE;
|
mDdBlt.IsClipped = FALSE;
|
||||||
|
|
|
@ -46,21 +46,7 @@ typedef struct
|
||||||
UINT mcTextures;
|
UINT mcTextures;
|
||||||
DDSURFACEDESC *mpTextures;
|
DDSURFACEDESC *mpTextures;
|
||||||
|
|
||||||
/* Surface */
|
|
||||||
DDRAWI_DDRAWSURFACE_GBL mPrimaryGlobal;
|
|
||||||
DDRAWI_DDRAWSURFACE_MORE mPrimaryMore;
|
|
||||||
DDRAWI_DDRAWSURFACE_LCL mPrimaryLocal;
|
|
||||||
//DDRAWI_DDRAWSURFACE_LCL *mpPrimaryLocals[1];
|
|
||||||
DDRAWI_DDRAWCLIPPER_LCL mPrimaryClipperLocal;
|
|
||||||
DDRAWI_DDRAWCLIPPER_GBL mPrimaryClipperGlobal;
|
|
||||||
//DDRAWI_DDRAWCLIPPER_INT mPrimaryClipperInterface;
|
|
||||||
DDSURFACEDESC mddsdPrimary;
|
|
||||||
DDSURFACEDESC mddsdOverlay;
|
|
||||||
|
|
||||||
DDRAWI_DDRAWSURFACE_GBL mOverlayGlobal;
|
|
||||||
DDRAWI_DDRAWSURFACE_LCL mOverlayLocal[6];
|
|
||||||
DDRAWI_DDRAWSURFACE_LCL *mpOverlayLocals[6];
|
|
||||||
DDRAWI_DDRAWSURFACE_MORE mOverlayMore[6];
|
|
||||||
|
|
||||||
|
|
||||||
/* ExclusiveOwner */
|
/* ExclusiveOwner */
|
||||||
|
@ -77,8 +63,16 @@ typedef struct
|
||||||
|
|
||||||
/******** Surface Object ********/
|
/******** Surface Object ********/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
DDRAWI_DDRAWSURFACE_GBL mPrimaryGlobal;
|
||||||
|
DDRAWI_DDRAWSURFACE_MORE mPrimaryMore;
|
||||||
|
DDRAWI_DDRAWSURFACE_LCL mPrimaryLocal;
|
||||||
DDRAWI_DDRAWSURFACE_LCL *mpPrimaryLocals[1];
|
DDRAWI_DDRAWSURFACE_LCL *mpPrimaryLocals[1];
|
||||||
|
|
||||||
|
DDRAWI_DDRAWCLIPPER_LCL mPrimaryClipperLocal;
|
||||||
|
DDRAWI_DDRAWCLIPPER_GBL mPrimaryClipperGlobal;
|
||||||
|
|
||||||
|
DDSURFACEDESC mddsdPrimary;
|
||||||
} DxSurf;
|
} DxSurf;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue