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:
Magnus Olsen
2006-04-13 11:03:19 +00:00
parent e0b74935a5
commit 3bd173b1f2
3 changed files with 16 additions and 6 deletions
+3 -3
View File
@@ -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;
+11 -3
View File
@@ -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)
+2
View File
@@ -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;