Update of /project/corman-sdl/cvsroot/corman-sdl/ffi
In directory common-lisp.net:/tmp/cvs-serv26481/ffi
Modified Files:
sdl-util.lisp
Log Message:
Date: Fri Jul 2 02:24:59 2004
Author: lcrook
Index: corman-sdl/ffi/sdl-util.lisp
diff -u corman-sdl/ffi/sdl-util.lisp:1.2 corman-sdl/ffi/sdl-util.lisp:1.3
--- corman-sdl/ffi/sdl-util.lisp:1.2 Tue Apr 20 18:23:07 2004
+++ corman-sdl/ffi/sdl-util.lisp Fri Jul 2 02:24:59 2004
@@ -213,47 +213,54 @@
(ct:cref sdl:SDL_Surface surface sdl::format)))
-(defun fill-surface (surface r g b &optional (a nil) &key (rectangle nil))
- "fill SURFACE R G B &optional A &key (RECTANGLE null)
- Fill SURFACE with the specified color using the parameters R G B and the optional alpha component, A.
- RECTANGLE is the fill template."
- (if (null a)
- (sdl:SDL_FillRect surface rectangle
+(defun fill-surface (surface &key (r 0) (g 0) (b 0) (alpha nil) (template NULL))
+ "fill SURFACE &key R G B ALPHA (template null)
+ Fill SURFACE with the specified color using the keyword parameters R G B and Alpha.
+ :template is the fill template."
+ (if ALPHA
+ (sdl:SDL_FillRect surface template
(sdl:SDL_MapRGB (sdl:pixelformat surface) r g b))
- (sdl:SDL_FillRect surface rectangle
- (sdl:SDL_MapRGBA (sdl:pixelformat surface) r g b a))))
+ (sdl:SDL_FillRect surface template
+ (sdl:SDL_MapRGBA (sdl:pixelformat surface) r g b ALPHA))))
-(defun fill-display (r g b &key (rectangle nil))
- "fill-display R G B &key RECTANGLE
+(defun fill-display (&key (r 0) (g 0) (b 0) (template NULL))
+ "fill-display &key R G B template
Fills the display with a color specified using the R G B parameters.
- The optional RECTANGLE (SDL_Rect) defaults to NULL."
- (sdl:SDL_FillRect (sdl:display) RECTANGLE
+ The keyword :template (SDL_Rect) defaults to NULL."
+ (sdl:SDL_FillRect (sdl:display) template
(sdl:SDL_MapRGB (sdl:pixelformat (sdl:display)) r g b)))
-(defun clear-display (&optional (r 0) (g 0) (b 0))
- "clear-display &optional R G B
- Clears the whole display using the optional R G B parameters. Color defaults to black."
+#|(defun clear-display (&key (r 0) (g 0) (b 0))
+ "clear-display &key R G B
+ Clears the whole display using the keyword :R :G :B parameters. Color defaults to black."
(sdl:SDL_FillRect (sdl:display) NULL
(sdl:SDL_MapRGB (sdl:pixelformat (sdl:display)) r g b)))
+|#
-(defun update-display (&optional (x 0) (y 0) (w 0) (h 0))
- "update-display &optional X Y W H
- Updates the screen using the optional co-orditates X Y W H.
+(defun update-display (&key (x 0) (y 0) (w 0) (h 0) (template nil))
+ "update-display &key X Y W H
+ Updates the screen using the keyword co-orditates :X :Y :W :H, or :template.
Co-ordinates default to 0, therefore updating the entire screen."
- (sdl:SDL_UpdateRect (sdl:display) x y w h))
+ (if template
+ (sdl:SDL_UpdateRect (sdl:display)
+ (sdl:rectangle-x template)
+ (sdl:rectangle-y template)
+ (sdl:rectangle-w template)
+ (sdl:rectangle-h template))
+ (sdl:SDL_UpdateRect (sdl:display) x y w h)))
-(defun blit-to-display (source destination &key (rectangle NULL))
+(defun blit-to-display (source &key (template NULL))
"blit-to-display SOURCE DESTINATION
Blits the SOURCE surface to the display using SDL_BlitSurface.
DESTINATION is a SDL_Rect. Only the [x,y] co-ordinates are used to position the source on the display."
- (sdl:SDL_BlitSurface source rectangle (sdl:display) destination))
+ (sdl:blit-to-surface source (sdl:display) :destination-template template))
-(defun blit-to-surface (source destination-coords destination-surface &key (source-rect nil))
+(defun blit-to-surface (source destination &key (source-template NULL) (destination-template NULL))
"blit-to-surface SOURCE DESTINATION-COORDS DESTINATION-SURFACE &key SOURCE-RECT
Blits the SOURCE surface to the DESTINATION-SURFACE using SDL_BlitSurface.
DESTINATION is a SDL_Rect. Only the [x,y] co-ordinates are used to position the SOURCE on the DESTINATION-SURFACE.
Use the optional SOURCE-RECT ( SDL_Rect ) to blit a portion of the SOURCE to the DESTINATION-SURFACE."
- (sdl:SDL_BlitSurface source source-rect destination-surface destination-coords))
+ (sdl:SDL_BlitSurface source source-template destination destination-template))
(defun set-colorkey (surface r g b &key (accel nil))
(if (or
@@ -450,7 +457,10 @@
(funcall #'(lambda ,params
,@forms)
(ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::state)
- (ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::keysym))))
+ (ct:cref sdl:SDL_keysym (ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::keysym) sdl::scancode)
+ (ct:cref sdl:SDL_keysym (ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::keysym) sdl::sym)
+ (ct:cref sdl:SDL_keysym (ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::keysym) sdl::mod)
+ (ct:cref sdl:SDL_keysym (ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::keysym) sdl::unicode))))
(defun expand-keyup (sdl-event params forms)
`((eql sdl:SDL_KEYUP
@@ -460,7 +470,10 @@
(funcall #'(lambda ,params
,@forms)
(ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::state)
- (ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::keysym))))
+ (ct:cref sdl:SDL_keysym (ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::keysym) sdl::scancode)
+ (ct:cref sdl:SDL_keysym (ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::keysym) sdl::sym)
+ (ct:cref sdl:SDL_keysym (ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::keysym) sdl::mod)
+ (ct:cref sdl:SDL_keysym (ct:cref sdl:SDL_KeyboardEvent ,sdl-event sdl::keysym) sdl::unicode))))
(defun expand-mousemotion (sdl-event params forms)
`((eql sdl:SDL_MOUSEMOTION