aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2022-01-22 20:20:43 +0100
committersfan5 <sfan5@live.de>2022-01-27 22:30:02 +0100
commit7aea5cb88f9a8cc9f9ca52ecd4d13cfd7ab16e69 (patch)
treeb67422b1edbed988370e0e7bdc5964d9447aaf68
parent058846d687bef214fe6216938d4cf8bf2c79290e (diff)
downloadminetest-7aea5cb88f9a8cc9f9ca52ecd4d13cfd7ab16e69.tar.gz
minetest-7aea5cb88f9a8cc9f9ca52ecd4d13cfd7ab16e69.tar.bz2
minetest-7aea5cb88f9a8cc9f9ca52ecd4d13cfd7ab16e69.zip
Enable high-res timers on Windows
This should fix issues like #11891, caused by the fps limiting code being unable to operate correctly.
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/porting.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index ed0929564..7f207244c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -268,7 +268,7 @@ if(WIN32)
else() # Probably MinGW = GCC
set(PLATFORM_LIBS "")
endif()
- set(PLATFORM_LIBS ws2_32.lib version.lib shlwapi.lib ${PLATFORM_LIBS})
+ set(PLATFORM_LIBS ws2_32.lib version.lib shlwapi.lib winmm.lib ${PLATFORM_LIBS})
set(EXTRA_DLL "" CACHE FILEPATH "Optional paths to additional DLLs that should be packaged")
diff --git a/src/porting.cpp b/src/porting.cpp
index 4c87bddee..f78de39ad 100644
--- a/src/porting.cpp
+++ b/src/porting.cpp
@@ -35,6 +35,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <algorithm>
#include <shlwapi.h>
#include <shellapi.h>
+ #include <mmsystem.h>
#endif
#if !defined(_WIN32)
#include <unistd.h>
@@ -766,6 +767,9 @@ bool open_directory(const std::string &path)
inline double get_perf_freq()
{
+ // Also use this opportunity to enable high-res timers
+ timeBeginPeriod(1);
+
LARGE_INTEGER freq;
QueryPerformanceFrequency(&freq);
return freq.QuadPart;