mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-10 23:02:03 +00:00
- The interpolation code needs the current frame rate so it must be retrieved.
This commit is contained in:
parent
064a453b41
commit
f2cc7e3636
2 changed files with 21 additions and 0 deletions
|
@ -59,6 +59,7 @@ extern "C" {
|
||||||
__declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
|
__declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
|
||||||
__declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
|
__declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
|
||||||
}
|
}
|
||||||
|
void GetRefreshRate(HWND hWnd);
|
||||||
|
|
||||||
EXTERN_CVAR(Int, vid_defwidth)
|
EXTERN_CVAR(Int, vid_defwidth)
|
||||||
EXTERN_CVAR(Int, vid_defheight)
|
EXTERN_CVAR(Int, vid_defheight)
|
||||||
|
@ -339,6 +340,7 @@ void SystemBaseFrameBuffer::PositionWindow(bool fullscreen, bool initialcall)
|
||||||
}
|
}
|
||||||
m_Fullscreen = fullscreen;
|
m_Fullscreen = fullscreen;
|
||||||
SetSize(GetClientWidth(), GetClientHeight());
|
SetSize(GetClientWidth(), GetClientHeight());
|
||||||
|
GetRefreshRate(Window);
|
||||||
}
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
|
@ -330,6 +330,22 @@ bool CallHook(FInputDevice *device, HWND hWnd, UINT message, WPARAM wParam, LPAR
|
||||||
return device->WndProcHook(hWnd, message, wParam, lParam, result);
|
return device->WndProcHook(hWnd, message, wParam, lParam, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GetRefreshRate(HWND hWnd)
|
||||||
|
{
|
||||||
|
HMONITOR moni = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST);
|
||||||
|
MONITORINFOEXA moninf;
|
||||||
|
moninf.cbSize = sizeof(moninf);
|
||||||
|
if (GetMonitorInfoA(moni, (LPMONITORINFO)&moninf))
|
||||||
|
{
|
||||||
|
DEVMODEA dm;
|
||||||
|
dm.dmSize = sizeof(DEVMODEA);
|
||||||
|
if (EnumDisplaySettingsA(moninf.szDevice, ENUM_CURRENT_SETTINGS, &dm))
|
||||||
|
{
|
||||||
|
refreshfreq = dm.dmDisplayFrequency;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
LRESULT result;
|
LRESULT result;
|
||||||
|
@ -417,6 +433,7 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_SETFOCUS:
|
case WM_SETFOCUS:
|
||||||
|
GetRefreshRate(hWnd);
|
||||||
I_CheckNativeMouse (false, false); // This cannot call the event handler. Doing it from here is unsafe.
|
I_CheckNativeMouse (false, false); // This cannot call the event handler. Doing it from here is unsafe.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -461,6 +478,8 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_DISPLAYCHANGE:
|
case WM_DISPLAYCHANGE:
|
||||||
|
GetRefreshRate(hWnd);
|
||||||
|
// fall through
|
||||||
case WM_STYLECHANGED:
|
case WM_STYLECHANGED:
|
||||||
return DefWindowProc(hWnd, message, wParam, lParam);
|
return DefWindowProc(hWnd, message, wParam, lParam);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue