mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
tweak fake output of GetVerticalBlankStatus
This commit is contained in:
parent
a8dfbff1f2
commit
8fe9a9370c
10
inc/dd.h
10
inc/dd.h
@ -15,15 +15,15 @@ typedef HRESULT(WINAPI* DIRECTDRAWCREATEPROC)(GUID FAR*, LPDIRECTDRAW FAR*, IUnk
|
||||
ULONG dd_AddRef();
|
||||
ULONG dd_Release();
|
||||
HRESULT dd_EnumDisplayModes(DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback);
|
||||
HRESULT dd_WaitForVerticalBlank(DWORD dwFlags, HANDLE hEvent);
|
||||
HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFlags);
|
||||
HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags);
|
||||
HRESULT dd_RestoreDisplayMode();
|
||||
HRESULT dd_GetCaps(LPDDCAPS_DX1 lpDDDriverCaps, LPDDCAPS_DX1 lpDDEmulCaps);
|
||||
HRESULT dd_GetDisplayMode(LPDDSURFACEDESC lpDDSurfaceDesc);
|
||||
HRESULT dd_GetMonitorFrequency(LPDWORD lpdwFreq);
|
||||
HRESULT dd_GetAvailableVidMem(LPDDSCAPS lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree);
|
||||
HRESULT dd_GetVerticalBlankStatus(LPBOOL lpbIsInVB);
|
||||
HRESULT dd_RestoreDisplayMode();
|
||||
HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags);
|
||||
HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFlags);
|
||||
HRESULT dd_WaitForVerticalBlank(DWORD dwFlags, HANDLE hEvent);
|
||||
HRESULT dd_GetAvailableVidMem(LPDDSCAPS lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree);
|
||||
HRESULT dd_TestCooperativeLevel();
|
||||
HRESULT dd_GetDeviceIdentifier(LPDDDEVICEIDENTIFIER pDDDI, DWORD dwFlags, REFIID riid);
|
||||
HRESULT dd_CreateEx(GUID* lpGuid, LPVOID* lplpDD, REFIID iid, IUnknown* pUnkOuter);
|
||||
|
29
src/dd.c
29
src/dd.c
@ -587,6 +587,27 @@ HRESULT dd_GetMonitorFrequency(LPDWORD lpdwFreq)
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
HRESULT dd_GetVerticalBlankStatus(LPBOOL lpbIsInVB)
|
||||
{
|
||||
if (!lpbIsInVB)
|
||||
return DDERR_INVALIDPARAMS;
|
||||
|
||||
static DWORD last_vb;
|
||||
DWORD tick = GetTickCount();
|
||||
|
||||
if (last_vb + 16 > tick)
|
||||
{
|
||||
*lpbIsInVB = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
last_vb = tick;
|
||||
*lpbIsInVB = TRUE;
|
||||
}
|
||||
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
HRESULT dd_RestoreDisplayMode()
|
||||
{
|
||||
if (!g_ddraw.render.run)
|
||||
@ -1685,14 +1706,6 @@ HRESULT dd_GetAvailableVidMem(LPDDSCAPS lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpd
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
HRESULT dd_GetVerticalBlankStatus(LPBOOL lpbIsInVB)
|
||||
{
|
||||
if (lpbIsInVB)
|
||||
*lpbIsInVB = TRUE;
|
||||
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
HRESULT dd_TestCooperativeLevel()
|
||||
{
|
||||
if (g_config.limiter_type == LIMIT_TESTCOOP && g_ddraw.ticks_limiter.tick_length > 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user