diff options
author | David Thompson <dthompson2@worcester.edu> | 2015-12-17 09:06:58 -0500 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2015-12-17 09:08:07 -0500 |
commit | 082243021181e6b77be164683d6b0812f6666f54 (patch) | |
tree | ccdf81f806e75e580082edb770808f2d5d305932 | |
parent | 1403e4a67989d627fe84b6e6beeec641c1d7d49e (diff) |
Add color type.
* sdl2/bindings.scm (sdl-color): New variable.
* sdl2.scm (<color>): New record type.
(make-color, color?, color-r, color-g, color-b, color-a, color->struct): New
procedures.
-rw-r--r-- | sdl2.scm | 26 | ||||
-rw-r--r-- | sdl2/bindings.scm | 3 |
2 files changed, 28 insertions, 1 deletions
@@ -26,6 +26,7 @@ (define-module (sdl2) #:use-module (ice-9 match) #:use-module (srfi srfi-4) + #:use-module (srfi srfi-9) #:use-module (system foreign) #:use-module ((sdl2 bindings) #:prefix ffi:) #:export (sdl-error-string @@ -33,7 +34,15 @@ sdl-version sdl-init sdl-quit - sdl-ticks)) + sdl-ticks + + <color> + make-color + color? + color-r + color-g + color-b + color-a)) (define %default-init-flags '(timer audio video haptic game-controller events)) @@ -83,3 +92,18 @@ upon all exit conditions." "Return the number of milliseconds since the SDL library initialization." (ffi:sdl-get-ticks)) + +;; SDL_Color +(define-record-type <color> + (make-color r g b a) + color? + (r color-r) + (g color-g) + (b color-b) + (a color-a)) + +(define (color->struct color) + "Convert COLOR into a foreign struct." + (match color + (($ <color> r g b a) + (make-c-struct ffi:sdl-color (list r g b a))))) diff --git a/sdl2/bindings.scm b/sdl2/bindings.scm index a25822f..7edd7b2 100644 --- a/sdl2/bindings.scm +++ b/sdl2/bindings.scm @@ -76,6 +76,9 @@ RETURN-TYPE and accept arguments of ARG-TYPES." ;;; Foreign Types ;;; +(define-public sdl-color + (list uint8 uint8 uint8 uint8)) + (define sdl-bool int) (define (boolean->sdl-bool b) |