From 082243021181e6b77be164683d6b0812f6666f54 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 17 Dec 2015 09:06:58 -0500 Subject: Add color type. * sdl2/bindings.scm (sdl-color): New variable. * sdl2.scm (): New record type. (make-color, color?, color-r, color-g, color-b, color-a, color->struct): New procedures. --- sdl2.scm | 26 +++++++++++++++++++++++++- sdl2/bindings.scm | 3 +++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/sdl2.scm b/sdl2.scm index 74839fe..3541596 100644 --- a/sdl2.scm +++ b/sdl2.scm @@ -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 + + + 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 + (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 + (($ 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) -- cgit v1.2.3