summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2020-12-06 11:52:26 +0200
committerJaakko Keränen <jaakko.keranen@iki.fi>2020-12-06 11:52:26 +0200
commit6a565ea71745aaf4c91a7698bbf56f7d906fcaaa (patch)
treee68ed6140097be20ab51193dfd25ac1a4d1c502d /CMakeLists.txt
parente43ecd3eb279e117cbce8fd507ecef247938e4ac (diff)
Added build option for sleeping while idle
It appears at least on macOS, SDL is doing a while lot of stuff while waiting for new events. Perhaps because it has some sort of high-frequency input/sensor processing? Not sure. Now Lagrange will idle by polling events every 15 ms and sleeping in between. This reduces CPU time by an order of magnitude on macOS. Need to still test on other platforms.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt4
1 files changed, 4 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 82d55590..0edfbed2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,6 +30,7 @@ option (ENABLE_X11_SWRENDER "Use software rendering under X11" OFF)
30option (ENABLE_KERNING "Enable kerning in font renderer (slower)" ON) 30option (ENABLE_KERNING "Enable kerning in font renderer (slower)" ON)
31option (ENABLE_RESOURCE_EMBED "Embed resources inside the executable" OFF) 31option (ENABLE_RESOURCE_EMBED "Embed resources inside the executable" OFF)
32option (ENABLE_WINDOWPOS_FIX "Set position after showing window (workaround for SDL bug)" OFF) 32option (ENABLE_WINDOWPOS_FIX "Set position after showing window (workaround for SDL bug)" OFF)
33option (ENABLE_IDLE_SLEEP "While idle, sleep in the main thread instead of waiting for events" ON)
33 34
34include (BuildType.cmake) 35include (BuildType.cmake)
35include (res/Embed.cmake) 36include (res/Embed.cmake)
@@ -219,6 +220,9 @@ if (ENABLE_MPG123 AND MPG123_FOUND)
219 target_compile_definitions (app PUBLIC LAGRANGE_ENABLE_MPG123=1) 220 target_compile_definitions (app PUBLIC LAGRANGE_ENABLE_MPG123=1)
220 target_link_libraries (app PUBLIC PkgConfig::MPG123) 221 target_link_libraries (app PUBLIC PkgConfig::MPG123)
221endif () 222endif ()
223if (ENABLE_IDLE_SLEEP)
224 target_compile_definitions (app PUBLIC LAGRANGE_IDLE_SLEEP=1)
225endif ()
222target_link_libraries (app PUBLIC the_Foundation::the_Foundation) 226target_link_libraries (app PUBLIC the_Foundation::the_Foundation)
223target_link_libraries (app PUBLIC ${SDL2_LDFLAGS}) 227target_link_libraries (app PUBLIC ${SDL2_LDFLAGS})
224if (APPLE) 228if (APPLE)