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