lay some gorun for blt but not implement Modified: trunk/reactos/lib/ddraw/hal/surface_hal.c Modified: trunk/reactos/lib/ddraw/main/surface_main.c Modified: trunk/reactos/lib/ddraw/rosdraw.h Modified: trunk/reactos/lib/ddraw/soft/surface_hel.c _____
Modified: trunk/reactos/lib/ddraw/hal/surface_hal.c --- trunk/reactos/lib/ddraw/hal/surface_hal.c 2005-10-30 10:58:53 UTC (rev 18878) +++ trunk/reactos/lib/ddraw/hal/surface_hal.c 2005-10-30 12:53:32 UTC (rev 18879) @@ -9,3 +9,31 @@
*/
#include "rosdraw.h" + +HRESULT Hal_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7 iface, LPRECT rdst, + LPDIRECTDRAWSURFACE7 src, LPRECT rsrc, DWORD dwFlags, LPDDBLTFX lpbltfx) +{ + + DDHAL_BLTDATA BltData; + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + + if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDDSurface.dwFlags & DDHAL_SURFCB32_BLT)) + { + return DDERR_NODRIVERSUPPORT; + } + + BltData.lpDD = &This->DirectDrawGlobal; + /* RtlCopyMemory( &BltData.bltFX, lpbltfx,sizeof(DDBLTFX)); */ + BltData.dwFlags = dwFlags; + + /* FIXME blt is not complete */ + + if (This->DirectDrawGlobal.lpDDCBtmp->HALDDSurface.Blt(&BltData) != DDHAL_DRIVER_HANDLED) + { + return DDERR_NODRIVERSUPPORT; + } + + return BltData.ddRVal; + +} + _____
Modified: trunk/reactos/lib/ddraw/main/surface_main.c --- trunk/reactos/lib/ddraw/main/surface_main.c 2005-10-30 10:58:53 UTC (rev 18878) +++ trunk/reactos/lib/ddraw/main/surface_main.c 2005-10-30 12:53:32 UTC (rev 18879) @@ -126,9 +126,17 @@
HRESULT WINAPI Main_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7 iface, LPRECT rdst, LPDIRECTDRAWSURFACE7 src, LPRECT rsrc, DWORD dwFlags, LPDDBLTFX lpbltfx) { - DX_STUB; + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + + if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_FLIPTOGDISURFACE) + { + return Hal_DDrawSurface_Blt( iface, rdst, src, rsrc, dwFlags, lpbltfx); + } + + return Hel_DDrawSurface_Blt( iface, rdst, src, rsrc, dwFlags, lpbltfx); }
+ HRESULT WINAPI Main_DDrawSurface_Lock (LPDIRECTDRAWSURFACE7 iface, LPRECT prect, LPDDSURFACEDESC2 pDDSD, DWORD flags, HANDLE event) { _____
Modified: trunk/reactos/lib/ddraw/rosdraw.h --- trunk/reactos/lib/ddraw/rosdraw.h 2005-10-30 10:58:53 UTC (rev 18878) +++ trunk/reactos/lib/ddraw/rosdraw.h 2005-10-30 12:53:32 UTC (rev 18879) @@ -84,41 +84,27 @@
/********* Prototypes **********/
-HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface); -HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface); -VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 iface); +HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 ); +HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 ); +VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 ); +HRESULT Hal_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7, LPDDSCAPS2, LPDWORD, LPDWORD ); +HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7, DWORD, HANDLE ); +HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 , LPDWORD ); +HRESULT Hal_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 ); +HRESULT Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7, DWORD, DWORD, DWORD, DWORD, DWORD ); +HRESULT Hal_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7, LPRECT, LPDIRECTDRAWSURFACE7, LPRECT, DWORD, LPDDBLTFX );
-HRESULT Hal_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps, - LPDWORD total, LPDWORD free);
-HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags, - HANDLE h); +HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 ); +HRESULT Hel_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 ); +VOID Hel_DirectDraw_Release (LPDIRECTDRAW7 ); +HRESULT Hel_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 , LPDDSCAPS2 ddsaps, LPDWORD , LPDWORD ); +HRESULT Hel_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7, DWORD, HANDLE ); +HRESULT Hel_DirectDraw_GetScanLine(LPDIRECTDRAW7 , LPDWORD ); +HRESULT Hel_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 ); +HRESULT Hel_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 , DWORD , DWORD ,DWORD , DWORD , DWORD ); +HRESULT Hel_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7, LPRECT, LPDIRECTDRAWSURFACE7, LPRECT, DWORD, LPDDBLTFX );
-HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine); -HRESULT Hal_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface); -HRESULT Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeight, - DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags); - - - - - -HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface); -HRESULT Hel_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface); -VOID Hel_DirectDraw_Release (LPDIRECTDRAW7 iface); - -HRESULT Hel_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps, - LPDWORD total, LPDWORD free); - -HRESULT Hel_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags, - HANDLE h); - -HRESULT Hel_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine); -HRESULT Hel_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface); -HRESULT Hel_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeight, - DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags); - - /*********** Macros ***********/
#define DX_STUB \ _____
Modified: trunk/reactos/lib/ddraw/soft/surface_hel.c --- trunk/reactos/lib/ddraw/soft/surface_hel.c 2005-10-30 10:58:53 UTC (rev 18878) +++ trunk/reactos/lib/ddraw/soft/surface_hel.c 2005-10-30 12:53:32 UTC (rev 18879) @@ -9,3 +9,9 @@
*/
#include "rosdraw.h" + +HRESULT Hel_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7 iface, LPRECT rdst, + LPDIRECTDRAWSURFACE7 src, LPRECT rsrc, DWORD dwFlags, LPDDBLTFX lpbltfx) +{ + DX_STUB; +}