From 9e0f26f6eb0b3943494db10a3d31b246040ab233 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Sat, 16 Jan 2010 23:25:40 -0800 Subject: [PATCH] game.loop: fps word to divide a value into 1,000,000 --- extra/game/loop/loop-docs.factor | 4 ++++ extra/game/loop/loop.factor | 3 +++ extra/gpu/demos/bunny/bunny.factor | 2 +- extra/gpu/demos/raytrace/raytrace.factor | 2 +- extra/terrain/terrain.factor | 2 +- 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/extra/game/loop/loop-docs.factor b/extra/game/loop/loop-docs.factor index ea520af8a4..cd8660e465 100644 --- a/extra/game/loop/loop-docs.factor +++ b/extra/game/loop/loop-docs.factor @@ -2,6 +2,10 @@ USING: help.markup help.syntax kernel math ui.gadgets.worlds ; IN: game.loop +HELP: fps +{ $values { "fps" real } { "micros" integer } } +{ $description "Converts a frames per second value into an interval length in microseconds." } ; + HELP: { $values { "tick-interval-micros" integer } { "delegate" "a " { $link "game.loop-delegates" } } diff --git a/extra/game/loop/loop.factor b/extra/game/loop/loop.factor index 80753e4e40..afe011cb7b 100644 --- a/extra/game/loop/loop.factor +++ b/extra/game/loop/loop.factor @@ -39,6 +39,9 @@ TUPLE: game-loop-error game-loop error ; : game-loop-error ( game-loop error -- ) [ drop stop-loop ] [ \ game-loop-error boa ?ui-error ] 2bi ; +: fps ( fps -- micros ) + 1,000,000 swap /i ; inline +