1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-20 04:59:11 +00:00

Fix: [Win32] Set minimum resolution for timers to 1ms. (#8660)

This commit is contained in:
Loïc Guilloux
2021-02-09 21:21:57 +01:00
committed by GitHub
parent 395e015282
commit f1f281b318
2 changed files with 12 additions and 0 deletions

View File

@@ -21,6 +21,7 @@
#include <windows.h>
#include <signal.h>
#include <timeapi.h>
#include "../../safeguards.h"
@@ -540,6 +541,9 @@ void *_safe_esp = nullptr;
static LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS *ep)
{
/* Restore system timer resolution. */
timeEndPeriod(1);
/* Disable our event loop. */
SetWindowLongPtr(GetActiveWindow(), GWLP_WNDPROC, (LONG_PTR)&DefWindowProc);

View File

@@ -18,6 +18,7 @@
#define NO_SHOBJIDL_SORTDIRECTION // Avoid multiple definition of SORT_ASCENDING
#include <shlobj.h> /* SHGetFolderPath */
#include <shellapi.h>
#include <timeapi.h>
#include "win32.h"
#include "../../fios.h"
#include "../../core/alloc_func.hpp"
@@ -413,6 +414,9 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
int argc;
char *argv[64]; // max 64 command line arguments
/* Set system timer resolution to 1ms. */
timeBeginPeriod(1);
CrashLog::InitialiseCrashLog();
#if defined(UNICODE)
@@ -440,6 +444,10 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
for (int i = 0; i < argc; i++) ValidateString(argv[i]);
openttd_main(argc, argv);
/* Restore system timer resolution. */
timeEndPeriod(1);
free(cmdline);
return 0;
}