implement Hal GetScanLine

svn path=/trunk/; revision=18871
This commit is contained in:
Magnus Olsen 2005-10-30 08:41:19 +00:00
parent 8b676541fe
commit 0a695e7538
5 changed files with 41 additions and 3 deletions

View file

@ -410,3 +410,26 @@ 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->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags & DDHAL_CB32_GETSCANLINE))
{
return DDERR_NODRIVERSUPPORT;
}
GetScan.lpDD = &This->DirectDrawGlobal;
GetScan.ddRVal = DDERR_NOTPALETTIZED;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.GetScanLine(&GetScan) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
*lpdwScanLine = GetScan.ddRVal;
return GetScan.ddRVal;
}

View file

@ -391,7 +391,15 @@ HRESULT WINAPI Main_DirectDraw_GetMonitorFrequency(LPDIRECTDRAW7 iface,LPDWORD f
HRESULT WINAPI Main_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine)
{
DX_STUB;
DWORD ret;
if((ret = Hal_DirectDraw_GetScanLine( iface, lpdwScanLine)) == DD_OK)
return ret;
if((ret = Hel_DirectDraw_GetScanLine( iface, lpdwScanLine)) == DD_OK)
return ret;
return DDERR_NOTINITIALIZED;
}
HRESULT WINAPI Main_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7 iface, LPBOOL status)
@ -407,7 +415,6 @@ HRESULT WINAPI Main_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface)
HRESULT WINAPI Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,
HANDLE h)
{
DWORD ret;
if((ret = Hal_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h)) == DD_OK)

View file

@ -81,7 +81,7 @@ HRESULT WINAPI Main_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE7 iface, LPDIREC
CreateData.lplpSList = pLocal;
/* this is the call we were waiting for */
if(CreateData.CreateSurface(&CreateData) == DDHAL_DRIVER_NOTHANDLED)
if(This->owner->DirectDrawGlobal.lpDDCBtmp->HALDD.CreateSurface(&CreateData) == DDHAL_DRIVER_NOTHANDLED)
return DDERR_INVALIDPARAMS;
if(CreateData.ddRVal != DD_OK)

View file

@ -94,6 +94,7 @@ HRESULT Hal_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscap
HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,
HANDLE h);
HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine);
HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
@ -106,6 +107,8 @@ HRESULT Hel_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscap
HRESULT Hel_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,
HANDLE h);
HRESULT Hel_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine);
/*********** Macros ***********/

View file

@ -37,3 +37,8 @@ HRESULT Hel_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,H
{
DX_STUB;
}
HRESULT Hel_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine)
{
DX_STUB;
}