From af150158bb439a67b87e25f6612623653ecd08d6 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Mon, 24 Jul 2006 19:13:31 +0000 Subject: [PATCH] Kill more of the old design. svn path=/trunk/; revision=23269 --- reactos/dll/directx/ddraw/hal/ddraw_hal.c | 26 --- reactos/dll/directx/ddraw/main/ddraw_main.c | 195 ++++++++++++-------- reactos/dll/directx/ddraw/soft/ddraw_hel.c | 5 +- 3 files changed, 124 insertions(+), 102 deletions(-) diff --git a/reactos/dll/directx/ddraw/hal/ddraw_hal.c b/reactos/dll/directx/ddraw/hal/ddraw_hal.c index e2f174616cd..393aa09c3bc 100644 --- a/reactos/dll/directx/ddraw/hal/ddraw_hal.c +++ b/reactos/dll/directx/ddraw/hal/ddraw_hal.c @@ -68,32 +68,6 @@ HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,H return WaitVectorData.ddRVal; } -HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine) -{ - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - - DDHAL_GETSCANLINEDATA GetScan; - - if (!(This->mDDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE)) - { - return DDERR_NODRIVERSUPPORT; - } - - GetScan.lpDD = &This->mDDrawGlobal; - GetScan.ddRVal = DDERR_NOTPALETTIZED; - - if (This->mDDrawGlobal.lpDDCBtmp->HALDD.GetScanLine(&GetScan) != DDHAL_DRIVER_HANDLED) - { - return DDERR_NODRIVERSUPPORT; - } - - *lpdwScanLine = GetScan.ddRVal; - return GetScan.ddRVal; -} - - - - HRESULT Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) diff --git a/reactos/dll/directx/ddraw/main/ddraw_main.c b/reactos/dll/directx/ddraw/main/ddraw_main.c index 40b22b8e846..74d0af61b4a 100644 --- a/reactos/dll/directx/ddraw/main/ddraw_main.c +++ b/reactos/dll/directx/ddraw/main/ddraw_main.c @@ -806,6 +806,127 @@ Main_DirectDraw_GetCaps(LPDIRECTDRAW7 iface, LPDDCAPS pDriverCaps, } +/* + * IMPLEMENT + * Status ok + */ +HRESULT WINAPI Main_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD) +{ + DX_WINDBG_trace(); + + IDirectDrawImpl *This = (IDirectDrawImpl *)iface; + + if (pDDSD == NULL) + { + return DD_FALSE; + } + + pDDSD->dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_REFRESHRATE | DDSD_WIDTH; + pDDSD->dwHeight = This->mDDrawGlobal.vmiData.dwDisplayHeight; + pDDSD->dwWidth = This->mDDrawGlobal.vmiData.dwDisplayWidth; + pDDSD->lPitch = This->mDDrawGlobal.vmiData.lDisplayPitch; + pDDSD->dwRefreshRate = This->mDDrawGlobal.dwMonitorFrequency; + pDDSD->dwAlphaBitDepth = This->mDDrawGlobal.vmiData.ddpfDisplay.dwAlphaBitDepth; + + RtlCopyMemory(&pDDSD->ddpfPixelFormat,&This->mDDrawGlobal.vmiData.ddpfDisplay,sizeof(DDPIXELFORMAT)); + RtlCopyMemory(&pDDSD->ddsCaps,&This->mDDrawGlobal.ddCaps,sizeof(DDCORECAPS)); + + RtlCopyMemory(&pDDSD->ddckCKDestOverlay,&This->mDDrawGlobal.ddckCKDestOverlay,sizeof(DDCOLORKEY)); + RtlCopyMemory(&pDDSD->ddckCKSrcOverlay,&This->mDDrawGlobal.ddckCKSrcOverlay,sizeof(DDCOLORKEY)); + + /* have not check where I should get hold of this info yet + DWORD dwBackBufferCount; + DWORD dwReserved; + LPVOID lpSurface; + DDCOLORKEY ddckCKDestBlt; + DDCOLORKEY ddckCKSrcBlt; + DWORD dwTextureStage; + */ + + return DD_OK; +} + +/* + * Stub + * Status todo + */ +HRESULT WINAPI +Main_DirectDraw_GetFourCCCodes(LPDIRECTDRAW7 iface, LPDWORD pNumCodes, LPDWORD pCodes) +{ + DX_WINDBG_trace(); + DX_STUB; +} + +/* + * Stub + * Status todo + */ +HRESULT WINAPI +Main_DirectDraw_GetGDISurface(LPDIRECTDRAW7 iface, + LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface) +{ + DX_WINDBG_trace(); + DX_STUB; +} + +/* + * IMPLEMENT + * Status ok + */ +HRESULT WINAPI +Main_DirectDraw_GetMonitorFrequency(LPDIRECTDRAW7 iface,LPDWORD freq) +{ + DX_WINDBG_trace(); + + IDirectDrawImpl *This = (IDirectDrawImpl *)iface; + + if (freq == NULL) + { + return DD_FALSE; + } + + *freq = This->mDDrawGlobal.dwMonitorFrequency; + return DD_OK; +} + +/* + * IMPLEMENT + * Status ok + */ +HRESULT WINAPI +Main_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine) +{ + + DX_WINDBG_trace(); + + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + + *lpdwScanLine = 0; + + if (This->mDdGetScanLine.GetScanLine == NULL) + { + return DDERR_NODRIVERSUPPORT; + } + + This->mDdGetScanLine.ddRVal = DDERR_NOTPALETTIZED; + This->mDdGetScanLine.dwScanLine = 0; + + if (This->mDdGetScanLine.GetScanLine(&This->mDdGetScanLine)==DDHAL_DRIVER_HANDLED); + { + *lpdwScanLine = This->mDdGetScanLine.dwScanLine; + return This->mDdGetScanLine.ddRVal; + } + + return DDERR_NODRIVERSUPPORT; +} + + + + + + + + /* * IMPLEMENT @@ -959,42 +1080,6 @@ HRESULT WINAPI DirectDrawCreateClipper (DWORD dwFlags, -HRESULT WINAPI Main_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD) -{ - DX_WINDBG_trace(); - - IDirectDrawImpl *This = (IDirectDrawImpl *)iface; - - if (pDDSD == NULL) - { - return DD_FALSE; - } - - - pDDSD->dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_REFRESHRATE | DDSD_WIDTH; - pDDSD->dwHeight = This->mDDrawGlobal.vmiData.dwDisplayHeight; - pDDSD->dwWidth = This->mDDrawGlobal.vmiData.dwDisplayWidth; - pDDSD->lPitch = This->mDDrawGlobal.vmiData.lDisplayPitch; - pDDSD->dwRefreshRate = This->mDDrawGlobal.dwMonitorFrequency; - pDDSD->dwAlphaBitDepth = This->mDDrawGlobal.vmiData.ddpfDisplay.dwAlphaBitDepth; - - RtlCopyMemory(&pDDSD->ddpfPixelFormat,&This->mDDrawGlobal.vmiData.ddpfDisplay,sizeof(DDPIXELFORMAT)); - RtlCopyMemory(&pDDSD->ddsCaps,&This->mDDrawGlobal.ddCaps,sizeof(DDCORECAPS)); - - RtlCopyMemory(&pDDSD->ddckCKDestOverlay,&This->mDDrawGlobal.ddckCKDestOverlay,sizeof(DDCOLORKEY)); - RtlCopyMemory(&pDDSD->ddckCKSrcOverlay,&This->mDDrawGlobal.ddckCKSrcOverlay,sizeof(DDCOLORKEY)); - - /* have not check where I should get hold of this info yet - DWORD dwBackBufferCount; - DWORD dwReserved; - LPVOID lpSurface; - DDCOLORKEY ddckCKDestBlt; - DDCOLORKEY ddckCKSrcBlt; - DWORD dwTextureStage; - */ - - return DD_OK; -} HRESULT WINAPI Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags, HANDLE h) @@ -1027,34 +1112,9 @@ HRESULT WINAPI Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS return Hel_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free); } -HRESULT WINAPI Main_DirectDraw_GetMonitorFrequency(LPDIRECTDRAW7 iface,LPDWORD freq) -{ - DX_WINDBG_trace(); - IDirectDrawImpl *This = (IDirectDrawImpl *)iface; - if (freq == NULL) - { - return DD_FALSE; - } - *freq = This->mDDrawGlobal.dwMonitorFrequency; - return DD_OK; -} - -HRESULT WINAPI Main_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine) -{ - DX_WINDBG_trace(); - - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - - if (This->mDDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE) - { - return Hal_DirectDraw_GetScanLine( iface, lpdwScanLine); - } - - return Hel_DirectDraw_GetScanLine( iface, lpdwScanLine); -} HRESULT WINAPI Main_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface) { @@ -1075,18 +1135,9 @@ HRESULT WINAPI Main_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface) -HRESULT WINAPI Main_DirectDraw_GetFourCCCodes(LPDIRECTDRAW7 iface, LPDWORD pNumCodes, LPDWORD pCodes) -{ - DX_WINDBG_trace(); - DX_STUB; -} -HRESULT WINAPI Main_DirectDraw_GetGDISurface(LPDIRECTDRAW7 iface, - LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface) -{ - DX_WINDBG_trace(); - DX_STUB; -} + + HRESULT WINAPI Main_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7 iface, LPBOOL status) { diff --git a/reactos/dll/directx/ddraw/soft/ddraw_hel.c b/reactos/dll/directx/ddraw/soft/ddraw_hel.c index 721534b78e9..712a0cb6a1f 100644 --- a/reactos/dll/directx/ddraw/soft/ddraw_hel.c +++ b/reactos/dll/directx/ddraw/soft/ddraw_hel.c @@ -27,10 +27,7 @@ HRESULT Hel_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,H DX_STUB; } -HRESULT Hel_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine) -{ - DX_STUB; -} +