]> git.jsancho.org Git - gacela.git/blobdiff - src/events.scm
Running gacela functions inside game loop thread for avoiding GL problems with threads
[gacela.git] / src / events.scm
index fb21d88f85985d3d911a30cfb33a70ad48a15c86..716425b5de8b805e3d56f64a3234d6d0153ae9b7 100644 (file)
 
 (define (process-screen-events events)
   (set! quit-signal #f)
+  (process-screen-events-recursive events))
+
+(define (process-screen-events-recursive events)
   (cond ((not (null? events))
         (let ((event (car events)))
           (cond ((= (assoc-ref event 'type) SDL_QUIT) (set! quit-signal #t))))
-        (process-screen-events (cdr events)))))
+        (process-screen-events-recursive (cdr events)))))
 
 (define (quit-signal?)
   quit-signal)
 
 (define (process-keyboard-events events)
   (clear-key-state)
+  (process-keyboard-events-recursive events))
+
+(define (process-keyboard-events-recursive events)
   (cond ((not (null? events))
         (let ((event (car events)))
           (cond ((= (assoc-ref event 'type) SDL_KEYDOWN) (key-press (assoc-ref event 'key.keysym.sym)))
                 ((= (assoc-ref event 'type) SDL_KEYUP) (key-release (assoc-ref event 'key.keysym.sym)))))
-        (process-keyboard-events (cdr events)))))
+        (process-keyboard-events-recursive (cdr events)))))
 
 (define (key? key)
   (hash-ref keymap (get-keycode key)))