]> git.jsancho.org Git - gacela.git/blobdiff - gacela_SDL.lisp
(no commit message)
[gacela.git] / gacela_SDL.lisp
index adcef190979560d01d963b716212f2aea28858f6..fe743493c6d44866f2440a122c6a5a02db25eab4 100644 (file)
 (clines "#include <SDL/SDL_image.h>")
 (clines "#include <SDL/SDL_ttf.h>")
 (clines "#include <SDL/SDL_mixer.h>")
-(clines "#include <SDL/sge.h>")
+(clines "#include <SDL/SDL_rotozoom.h>")
 
-;;; These are the flags which may be passed to SDL_Init()
-(defconstant SDL_INIT_TIMER            #x00000001)
-(defconstant SDL_INIT_AUDIO            #x00000010)
-(defconstant SDL_INIT_VIDEO            #x00000020)
-(defconstant SDL_INIT_CDROM            #x00000100)
-(defconstant SDL_INIT_JOYSTICK         #x00000200)
-(defconstant SDL_INIT_NOPARACHUTE      #x00100000)
-(defconstant SDL_INIT_EVENTTHREAD      #x01000000)
-(defconstant SDL_INIT_EVERYTHING       #x0000FFFF)
+(defmacro defcconst (type name)
+  `(let ((header (concatenate 'string "(defcfun \"
 
+;;; SDL constants as functions
+(defcfun "int gacela_SDL_INIT_TIMER (void)" 0 "return SDL_INIT_TIMER;")
+(defcfun "int gacela_SDL_INIT_AUDIO (void)" 0 "return SDL_INIT_AUDIO;")
+(defcfun "int gacela_SDL_INIT_VIDEO (void)" 0 "return SDL_INIT_VIDEO;")
+(defcfun "int gacela_SDL_INIT_CDROM (void)" 0 "return SDL_INIT_CDROM;")
+(defcfun "int gacela_SDL_INIT_JOYSTICK (void)" 0 "return SDL_INIT_JOYSTICK;")
+(defcfun "int gacela_SDL_INIT_NOPARACHUTE (void)" 0 "return SDL_INIT_NOPARACHUTE;")
+(defcfun "int gacela_SDL_INIT_EVENTTHREAD (void)" 0 "return SDL_INIT_EVENTTHREAD;")
+(defcfun "int gacela_SDL_INIT_EVERYTHING (void)" 0 "return SDL_INIT_EVERYTHING;")
 
-;;; These are the currently supported flags for the SDL_surface
-;;; Available for SDL_CreateRGBSurface() or SDL_SetVideoMode()
-(defconstant SDL_SWSURFACE             #x00000000)
-(defconstant SDL_HWSURFACE             #x00000001)
-(defconstant SDL_ASYNCBLIT             #x00000004)
+(defcfun "int gacela_SDL_SWSURFACE (void)" 0 "return SDL_SWSURFACE;")
+(defcfun "int gacela_SDL_HWSURFACE (void)" 0 "return SDL_HWSURFACE;")
+(defcfun "int gacela_SDL_ASYNCBLIT (void)" 0 "return SDL_ASYNCBLIT;")
 
+(defcfun "int gacela_SDL_ANYFORMAT (void)" 0 "return SDL_ANYFORMAT;")
+(defcfun "int gacela_SDL_HWPALETTE (void)" 0 "return SDL_HWPALETTE;")
+(defcfun "int gacela_SDL_DOUBLEBUF (void)" 0 "return SDL_DOUBLEBUF;")
+(defcfun "int gacela_SDL_FULLSCREEN (void)" 0 "return SDL_FULLSCREEN;")
+(defcfun "int gacela_SDL_OPENGL (void)" 0 "return SDL_OPENGL;")
+(defcfun "int gacela_SDL_OPENGLBLIT (void)" 0 "return SDL_OPENGLBLIT;")
+(defcfun "int gacela_SDL_RESIZABLE (void)" 0 "return SDL_RESIZABLE;")
+(defcfun "int gacela_SDL_NOFRAME (void)" 0 "return SDL_NOFRAME;")
 
-;;; Available for SDL_SetVideoMode()
-(defconstant SDL_ANYFORMAT             #x10000000)
-(defconstant SDL_HWPALETTE             #x20000000)
-(defconstant SDL_DOUBLEBUF             #x40000000)
-(defconstant SDL_FULLSCREEN            #x80000000)
-(defconstant SDL_OPENGL                        #x00000002)
-(defconstant SDL_OPENGLBLIT            #x0000000A)
-(defconstant SDL_RESIZABLE             #x00000010)
-(defconstant SDL_NOFRAME               #x00000020)
+(defcfun "int gacela_SDL_HWACCEL (void)" 0 "return SDL_HWACCEL;")
+(defcfun "int gacela_SDL_SRCCOLORKEY (void)" 0 "return SDL_SRCCOLORKEY;")
 
-;;; Used internally (read-only)
-(defconstant SDL_HWACCEL                #x00000100)
-(defconstant SDL_SRCCOLORKEY            #x00001000)
+(defcfun "int gacela_SDL_GL_DOUBLEBUFFER (void)" 0 "return SDL_GL_DOUBLEBUFFER;")
 
-;;; For setting the OpenGL window attributes
-(defconstant SDL_GL_DOUBLEBUFFER        5)
+(defcfun "int gacela_SDL_DEFAULT_REPEAT_DELAY (void)" 0 "return DEFAULT_REPEAT_DELAY;")
+(defcfun "int gacela_SDL_DEFAULT_REPEAT_INTERVAL (void)" 0 "return DEFAULT_REPEAT_INTERVAL;")
 
-;;; Keyboard
-(defconstant SDL_DEFAULT_REPEAT_DELAY     500)
-(defconstant SDL_DEFAULT_REPEAT_INTERVAL  30)
+(defcfun "int gacela_SDL_LIL_ENDIAN (void)" 0 "return SDL_LIL_ENDIAN;")
+(defcfun "int gacela_SDL_BIG_ENDIAN (void)" 0 "return SDL_BIG_ENDIAN;")
 
 
 ;;; SDL Functions
 (defcfun "int gacela_SDL_EnableKeyRepeat (int delay, int interval)" 0
   "return SDL_EnableKeyRepeat (delay, interval);")
 
+(defcfun "int gacela_zoomSurface (int src, float zoomx, float zoomy, int smooth)" 0
+  "return zoomSurface (src, zoomx, zoomy, smooth);")
+
+(defcfun "int gacela_SDL_ByteOrder (void)" 0
+  "return SDL_BYTEORDER;")
+
 (defentry SDL_Init (int) (int "gacela_SDL_Init"))
 (defentry SDL_Quit () (void "gacela_SDL_Quit"))
 (defentry SDL_SetVideoMode (int int int int) (int "gacela_SDL_SetVideoMode"))
 ;(defentry Mix_FreeMusic (int) (void "gacela_Mix_FreeMusic"))
 ;(defentry Mix_FreeChunk (int) (void "gacela_Mix_FreeChunk"))
 ;(defentry Mix_CloseAudio () (void "gacela_Mix_CloseAudio"))
-;(defentry sge_FilledCircle (int int int int int int int) (void "gacela_sge_FilledCircle"))
-;(defentry sge_FilledRect (int int int int int int int int) (void "gacela_sge_FilledRect"))
 ;(defentry free (int) (void "gacela_free"))
 (defentry SDL_GL_SwapBuffers () (void "gacela_SDL_GL_SwapBuffers"))
 (defentry SDL_EnableKeyRepeat (int int) (int "gacela_SDL_EnableKeyRepeat"))
+(defentry zoomSurface (int float float int) (int "gacela_zoomSurface"))
+(defentry SDL_ByteOrder () (int "gacela_SDL_ByteOrder"))
 
 ;;; C-Gacela Functions
 (defcfun "int gacela_surface_format (int surface)" 0
   "const SDL_Surface *s = surface;"
   "return s->pixels;")
 
+(defcfun "int gacela_surface_format_BytesPerPixel (int surface)" 0
+  "const SDL_Surface *s = surface;"
+  "return s->format->BytesPerPixel;")
+
 ;(defentry apply-surface2 (int int int int int int int int int) (void "apply_surface"))
 ;(defentry render-text2 (int string int int int) (int "render_text"))
 ;(defentry fill-surface (int int int int) (void "fill_surface"))
 (defentry surface-w (int) (int "gacela_surface_w"))
 (defentry surface-h (int) (int "gacela_surface_h"))
 (defentry surface-pixels (int) (int "gacela_surface_pixels"))
+(defentry surface-format-BytesPerPixel (int) (int "gacela_surface_format_BytesPerPixel"))