X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=gacela_SDL.lisp;h=fe743493c6d44866f2440a122c6a5a02db25eab4;hb=b1bda2479eebac341086054f217e20faadb7f7a7;hp=adcef190979560d01d963b716212f2aea28858f6;hpb=678a1561ca858c34fecf04792831caf68559c2ac;p=gacela.git diff --git a/gacela_SDL.lisp b/gacela_SDL.lisp index adcef19..fe74349 100644 --- a/gacela_SDL.lisp +++ b/gacela_SDL.lisp @@ -21,46 +21,44 @@ (clines "#include ") (clines "#include ") (clines "#include ") -(clines "#include ") +(clines "#include ") -;;; 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 @@ -136,6 +134,12 @@ (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")) @@ -172,11 +176,11 @@ ;(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 @@ -195,6 +199,10 @@ "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")) @@ -205,3 +213,4 @@ (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"))