summaryrefslogtreecommitdiff
path: root/kon/konprogram.c
diff options
context:
space:
mode:
Diffstat (limited to 'kon/konprogram.c')
-rw-r--r--kon/konprogram.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/kon/konprogram.c b/kon/konprogram.c
index a87aee8..2229c00 100644
--- a/kon/konprogram.c
+++ b/kon/konprogram.c
@@ -89,6 +89,14 @@ static void kon_cmdShake_(kon_debug_t *debug, void *user, int argc, char **argv)
state->shakeLeft = 0.5f;
}
+static void kon_cmdMaxFps_(kon_debug_t *debug, void *user, int argc, char **argv) {
+ kon_programState_t *state = user;
+
+ (void)debug;
+ if (argc > 1) state->pub.maxFps = atoi(argv[1]) > 0 ? atoi(argv[1]) : -1;
+ kon_debugLog(debug, "maxfps %d", state->pub.maxFps);
+}
+
static void kon_addWindowCommands_(kon_programState_t *state) {
kon_debug_t *debug = state->pub.debug;
@@ -97,6 +105,7 @@ static void kon_addWindowCommands_(kon_programState_t *state) {
kon_debugCommand(debug, "borderless", "borderless 0 or 1", kon_cmdBorderless_, state);
kon_debugCommand(debug, "clickthrough", "clickthrough 0 or 1", kon_cmdClickThrough_, state);
kon_debugCommand(debug, "message", "message \"text\"", kon_cmdMessage_, state);
+ kon_debugCommand(debug, "maxfps", "frame cap, 0 for none", kon_cmdMaxFps_, state);
kon_debugCommand(debug, "shake", "shake the window", kon_cmdShake_, state);
}
@@ -149,8 +158,8 @@ static void kon_frame_(void *data) {
kon_debugTimes(program->debug, t1 - t0, t2 - t1, t3 - t2, kon_getTime() - t4);
/* only wait out what is left of the frame, a fixed sleep eats time the frame could use */
- if (config->maxFps >= 0) {
- cap = 1.0 / (config->maxFps > 0 ? config->maxFps : 120);
+ if (program->maxFps >= 0) {
+ cap = 1.0 / (program->maxFps > 0 ? program->maxFps : 120);
dt = kon_getTime() - now;
if (dt < cap) kon_sleep(cap - dt);
}
@@ -204,6 +213,7 @@ int kon_programRun(const kon_programConfig_t *config) {
}
#endif
#ifdef KON_MODULE_DEBUG
+ program->maxFps = config->maxFps;
program->debug = kon_debugCreate(program->font);
kon_debugSetAssets(program->debug, program->assets);
#ifdef KON_DEVELOPER