Bind the Hal and Hel right in main call only to hal if the api are implement in the drv if not choice hel.

svn path=/trunk/; revision=18878
This commit is contained in:
Magnus Olsen 2005-10-30 10:58:53 +00:00
parent 5dcda5f7c1
commit fadf041561

View file

@ -259,15 +259,14 @@ HRESULT WINAPI Main_DirectDraw_EnumSurfaces(LPDIRECTDRAW7 iface, DWORD dwFlags,
HRESULT WINAPI Main_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface) HRESULT WINAPI Main_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface)
{ {
DWORD ret; IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if((ret = Hal_DirectDraw_FlipToGDISurface( iface)) == DD_OK) if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_FLIPTOGDISURFACE)
return ret; {
return Hal_DirectDraw_FlipToGDISurface( iface);
}
if((ret = Hel_DirectDraw_FlipToGDISurface( iface)) == DD_OK) return Hel_DirectDraw_FlipToGDISurface( iface);
return ret;
return DDERR_NOTINITIALIZED;
} }
HRESULT WINAPI Main_DirectDraw_GetCaps(LPDIRECTDRAW7 iface, LPDDCAPS pDriverCaps, HRESULT WINAPI Main_DirectDraw_GetCaps(LPDIRECTDRAW7 iface, LPDDCAPS pDriverCaps,
@ -370,16 +369,15 @@ HRESULT WINAPI Main_DirectDraw_GetMonitorFrequency(LPDIRECTDRAW7 iface,LPDWORD f
} }
HRESULT WINAPI Main_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine) HRESULT WINAPI Main_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine)
{ {
DWORD ret; IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if((ret = Hal_DirectDraw_GetScanLine( iface, lpdwScanLine)) == DD_OK) if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE)
return ret; {
return Hal_DirectDraw_GetScanLine( iface, lpdwScanLine);
}
if((ret = Hel_DirectDraw_GetScanLine( iface, lpdwScanLine)) == DD_OK) return Hel_DirectDraw_GetScanLine( iface, lpdwScanLine);
return ret;
return DDERR_NOTINITIALIZED;
} }
HRESULT WINAPI Main_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7 iface, LPBOOL status) HRESULT WINAPI Main_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7 iface, LPBOOL status)
@ -395,31 +393,27 @@ HRESULT WINAPI Main_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface)
HRESULT WINAPI Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags, HRESULT WINAPI Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,
HANDLE h) HANDLE h)
{ {
DWORD ret; IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if((ret = Hal_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h)) == DD_OK) if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK)
return ret; {
return Hal_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h);
}
if((ret = Hel_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h)) == DD_OK) return Hel_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h);
return ret;
return DDERR_NOTINITIALIZED;
} }
HRESULT WINAPI Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps, HRESULT WINAPI Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps,
LPDWORD total, LPDWORD free) LPDWORD total, LPDWORD free)
{ {
DWORD ret; IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if((ret = Hal_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free)) == DD_OK) if (This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY)
return ret; {
return Hal_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free);
if((ret = Hel_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free)) == DD_OK) }
return ret;
return DDERR_NOTINITIALIZED;
return Hel_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free);
} }
HRESULT WINAPI Main_DirectDraw_GetSurfaceFromDC(LPDIRECTDRAW7 iface, HDC hdc, HRESULT WINAPI Main_DirectDraw_GetSurfaceFromDC(LPDIRECTDRAW7 iface, HDC hdc,