From 9e3f804aaebb2e564869b6c5f62334adf8ae6283 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sat, 30 Jul 2016 14:48:17 -0400 Subject: [PATCH] I don't understand how elapsed-ms can end up negative, but I was seeing it in the platformer at frame 0 --- racket/syndicate-gl/2d.rkt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/racket/syndicate-gl/2d.rkt b/racket/syndicate-gl/2d.rkt index 3126173..493959b 100644 --- a/racket/syndicate-gl/2d.rkt +++ b/racket/syndicate-gl/2d.rkt @@ -344,12 +344,12 @@ (define/override (on-paint) (with-gl-context (lambda () - (let ((this-frame-time (sim-time))) - (inject-event! (message (frame-event counter - this-frame-time - (- this-frame-time prev-frame-time) - target-frame-rate))) - (set! counter (+ counter 1)) + (let* ((this-frame-time (sim-time)) + (elapsed-ms (- this-frame-time prev-frame-time))) + (when (not (negative? elapsed-ms)) + (inject-event! (message + (frame-event counter this-frame-time elapsed-ms target-frame-rate))) + (set! counter (+ counter 1))) (set! prev-frame-time this-frame-time)) (quiesce!) (unless initialised?