diff options
author | David Thompson <dthompson2@worcester.edu> | 2024-10-02 21:22:19 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2024-10-19 21:49:01 -0400 |
commit | 9b1d91b4c68477145434021ea7392c16d849ebaa (patch) | |
tree | 3e6c3934c530d4cc79a85adc95729f8da2af61c3 /sdl3/events.scm |
First commit!main
Diffstat (limited to 'sdl3/events.scm')
-rw-r--r-- | sdl3/events.scm | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/sdl3/events.scm b/sdl3/events.scm new file mode 100644 index 0000000..be0e0ef --- /dev/null +++ b/sdl3/events.scm @@ -0,0 +1,43 @@ +;;; guile-sdl3 -- Scheme bindings for SDL3 +;;; Copyright © 2024 David Thompson <dthompson2@worcester.edu> +;;; +;;; Licensed under the Apache License, Version 2.0 (the "License"); +;;; you may not use this file except in compliance with the License. +;;; You may obtain a copy of the License at +;;; +;;; http://www.apache.org/licenses/LICENSE-2.0 +;;; +;;; Unless required by applicable law or agreed to in writing, software +;;; distributed under the License is distributed on an "AS IS" BASIS, +;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +;;; See the License for the specific language governing permissions and +;;; limitations under the License. + +;;; Commentary: +;; +;; Low-level FFI binding utilities. +;; +;;; Code: + +(define-module (sdl3 events) + #:use-module (bstruct) + #:use-module (sdl3 bindings events) + #:use-module (system foreign) + #:export (event? + event-type + poll-event)) + +(define (make-event) + (bstruct-alloc SDL_Event)) + +(define (event? obj) + (bstruct? SDL_Event obj)) + +(define (event-type event) + (event-type->symbol (bstruct-ref SDL_Event event type))) + +(define (poll-event) + (and (eq? (SDL_PollEvent %null-pointer) 1) + (let ((event (make-event))) + (SDL_PollEvent (bstruct->pointer SDL_Event event)) + event))) |