X-Git-Url: https://git.jsancho.org/?p=gacela.git;a=blobdiff_plain;f=gacela%2Fevent.scm;fp=gacela%2Fevent.scm;h=9efd8e1c552e6654dd5fdf9c197d2032bf905e3d;hp=0000000000000000000000000000000000000000;hb=475d22be2375535402165d3373fae03a028886f2;hpb=e435ee14c06537860a24930e8d8372c77bc96b4d diff --git a/gacela/event.scm b/gacela/event.scm new file mode 100644 index 0000000..9efd8e1 --- /dev/null +++ b/gacela/event.scm @@ -0,0 +1,37 @@ +;;; Gacela, a GNU Guile extension for fast games development +;;; Copyright (C) 2017 by Javier Sancho Fernandez +;;; +;;; This program is free software: you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation, either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see . + + +(define-module (gacela event) + #:use-module ((sdl2 events) #:prefix sdl2:) + #:export (process-events + quit?)) + + +(define *current-events* '()) + +(define (poll-events) + (let ((event (sdl2:poll-event))) + (cond (event + (cons event (poll-events))) + (else + '())))) + +(define (process-events) + (set! *current-events* (poll-events))) + +(define (quit?) + (not (null? (filter (lambda (e) (sdl2:quit-event? e)) *current-events*))))