mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
one more redisg adding a member that tells whih destions it is. it work pretty well.
svn path=/trunk/; revision=21578
This commit is contained in:
@@ -67,7 +67,7 @@ HRESULT Hal_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7 iface, LPRECT rDest,
|
||||
|
||||
mDdBlt.lpDD = &This->Owner->mDDrawGlobal;
|
||||
mDdBlt.Blt = This->Owner->mCallbacks.HALDDSurface.Blt;
|
||||
mDdBlt.lpDDDestSurface = This->Owner->mpPrimaryLocals[0];
|
||||
mDdBlt.lpDDDestSurface = This->Surf->mpInUseSurfaceLocals[0];
|
||||
|
||||
mDdBlt.dwFlags = dwFlags;
|
||||
|
||||
@@ -109,7 +109,7 @@ HRESULT Hal_DDrawSurface_Lock(LPDIRECTDRAWSURFACE7 iface, LPRECT prect, LPDDSURF
|
||||
Lock.ddRVal = DDERR_NOTPALETTIZED;
|
||||
Lock.Lock = This->Owner->mCallbacks.HALDDSurface.Lock;
|
||||
Lock.dwFlags = flags;
|
||||
Lock.lpDDSurface = &This->Owner->mPrimaryLocal;
|
||||
Lock.lpDDSurface = This->Surf->mpInUseSurfaceLocals[0];
|
||||
Lock.lpDD = &This->Owner->mDDrawGlobal;
|
||||
Lock.lpSurfData = NULL;
|
||||
|
||||
@@ -160,7 +160,7 @@ HRESULT Hal_DDrawSurface_Unlock(LPDIRECTDRAWSURFACE7 iface, LPRECT pRect)
|
||||
DDHAL_UNLOCKDATA unLock;
|
||||
unLock.ddRVal = DDERR_NOTPALETTIZED;
|
||||
unLock.lpDD = &This->Owner->mDDrawGlobal;
|
||||
unLock.lpDDSurface = &This->Owner->mPrimaryLocal;
|
||||
unLock.lpDDSurface = This->Surf->mpInUseSurfaceLocals[0];
|
||||
unLock.Unlock = This->Owner->mCallbacks.HALDDSurface.Unlock;
|
||||
|
||||
|
||||
|
||||
@@ -577,6 +577,7 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
|
||||
That->Owner->mddsdPrimary.dwAlphaBitDepth = This->mDDrawGlobal.vmiData.ddpfDisplay.dwAlphaBitDepth;
|
||||
}
|
||||
|
||||
That->Surf->mpInUseSurfaceLocals[0] = &That->Owner->mPrimaryLocal;
|
||||
return DD_OK;
|
||||
|
||||
}
|
||||
@@ -586,18 +587,23 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
|
||||
OutputDebugStringA("Create DDSCAPS_OVERLAY\n");
|
||||
|
||||
memset(&That->Surf->mddsdOverlay, 0, sizeof(DDSURFACEDESC));
|
||||
memcpy(&That->Surf->mddsdOverlay, pDDSD, sizeof(DDSURFACEDESC));
|
||||
That->Surf->mddsdOverlay.dwSize = sizeof(DDSURFACEDESC);
|
||||
That->Surf->mddsdOverlay.dwFlags = DDSD_CAPS | DDSD_PIXELFORMAT | DDSD_BACKBUFFERCOUNT | DDSD_WIDTH | DDSD_HEIGHT;
|
||||
That->Surf->mddsdOverlay.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM | DDSCAPS_COMPLEX | DDSCAPS_FLIP;
|
||||
|
||||
|
||||
|
||||
//
|
||||
That->Surf->mddsdOverlay.dwWidth = 100; //pels;
|
||||
That->Surf->mddsdOverlay.dwHeight = 100; // lines;
|
||||
|
||||
That->Surf->mddsdOverlay.dwWidth = pDDSD->dwWidth; //pels;
|
||||
That->Surf->mddsdOverlay.dwHeight = pDDSD->dwHeight; // lines;
|
||||
That->Surf->mddsdOverlay.dwBackBufferCount = 1; //cBuffers;
|
||||
|
||||
That->Surf->mddsdOverlay.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
|
||||
That->Surf->mddsdOverlay.ddpfPixelFormat.dwFlags = DDPF_RGB;
|
||||
That->Surf->mddsdOverlay.ddpfPixelFormat.dwRGBBitCount = 32;
|
||||
//
|
||||
//
|
||||
//
|
||||
DDHAL_CANCREATESURFACEDATA mDdCanCreateSurface;
|
||||
mDdCanCreateSurface.lpDD = &This->mDDrawGlobal;
|
||||
@@ -712,6 +718,8 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
|
||||
return mDdUpdateOverlay.ddRVal;
|
||||
}
|
||||
|
||||
That->Surf->mpInUseSurfaceLocals[0] = That->Surf->mpOverlayLocals[0];
|
||||
//That->Surf->mpInUseSurfaceLocals[0] = &That->Owner->mPrimaryLocal;
|
||||
return DD_OK;
|
||||
}
|
||||
else if (pDDSD->ddsCaps.dwCaps & DDSCAPS_BACKBUFFER)
|
||||
|
||||
@@ -98,6 +98,8 @@ typedef struct
|
||||
typedef struct
|
||||
{
|
||||
|
||||
DDRAWI_DDRAWSURFACE_LCL *mpInUseSurfaceLocals[1];
|
||||
|
||||
DDRAWI_DDRAWSURFACE_GBL mSurfGlobal;
|
||||
DDRAWI_DDRAWSURFACE_MORE mSurfMore;
|
||||
DDRAWI_DDRAWSURFACE_LCL mSurfLocal;
|
||||
|
||||
Reference in New Issue
Block a user