X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fgacela_SDL.c;h=98b4a5ccf2107ea90d241ca7f030d2775a61c92a;hb=5d05f471fb4bd8eb8b3d3c0aaf6fdcae049be4b8;hp=b1a60e6d7d090fef93bcb8076da606b592f9508f;hpb=6aea83358ce8a171baae97f709dca9f0e0a7f246;p=gacela.git diff --git a/src/gacela_SDL.c b/src/gacela_SDL.c index b1a60e6..98b4a5c 100644 --- a/src/gacela_SDL.c +++ b/src/gacela_SDL.c @@ -1,17 +1,55 @@ #include #include -#include #include "gacela_SDL.h" SCM gacela_SDL_Init (SCM flags) { - return scm_make_integer (SDL_Init (scm_num2int (flags, "SDL_Init"))); + return scm_int2num (SDL_Init (scm_num2int (flags, 0, "SDL_Init"))); +} + +SCM +gacela_SDL_Quit () +{ + SDL_Quit (); + return SCM_UNSPECIFIED; +} + +SCM +gacela_SDL_SetVideoMode (SCM width, SCM height, SCM bpp, SCM flags) +{ + return scm_int2num (SDL_SetVideoMode (scm_num2int (width, 0, "SDL_SetVideoMode"), \ + scm_num2int (height, 0, "SDL_SetVideoMde"), \ + scm_num2int (bpp, 0, "SDL_SetVideoMde"), \ + scm_num2int (flags, 0, "SDL_SetVideoMde"))); } void* SDL_register_functions (void* data) { - scm_c_define_gsubr ("SDL_Init", 1, 0, 0, &gacela_SDL_Init); + scm_c_define ("SDL_INIT_TIMER", scm_int2num(SDL_INIT_TIMER)); + scm_c_define ("SDL_INIT_AUDIO", scm_int2num(SDL_INIT_AUDIO)); + scm_c_define ("SDL_INIT_VIDEO", scm_int2num(SDL_INIT_VIDEO)); + scm_c_define ("SDL_INIT_CDROM", scm_int2num(SDL_INIT_CDROM)); + scm_c_define ("SDL_INIT_JOYSTICK", scm_int2num(SDL_INIT_JOYSTICK)); + scm_c_define ("SDL_INIT_NOPARACHUTE", scm_int2num(SDL_INIT_NOPARACHUTE)); + scm_c_define ("SDL_INIT_EVENTTHREAD", scm_int2num(SDL_INIT_EVENTTHREAD)); + scm_c_define ("SDL_INIT_EVERYTHING", scm_int2num(SDL_INIT_EVERYTHING)); + + scm_c_define ("SDL_SWSURFACE", scm_int2num(SDL_SWSURFACE)); + scm_c_define ("SDL_HWSURFACE", scm_int2num(SDL_HWSURFACE)); + scm_c_define ("SDL_ASYNCBLIT", scm_int2num(SDL_ASYNCBLIT)); + + scm_c_define ("SDL_ANYFORMAT", scm_int2num(SDL_ANYFORMAT)); + scm_c_define ("SDL_HWPALETTE", scm_int2num(SDL_HWPALETTE)); + scm_c_define ("SDL_DOUBLEBUF", scm_int2num(SDL_DOUBLEBUF)); + scm_c_define ("SDL_FULLSCREEN", scm_int2num(SDL_FULLSCREEN)); + scm_c_define ("SDL_OPENGL", scm_int2num(SDL_OPENGL)); + scm_c_define ("SDL_OPENGLBLIT", scm_int2num(SDL_OPENGLBLIT)); + scm_c_define ("SDL_RESIZABLE", scm_int2num(SDL_RESIZABLE)); + + scm_c_define_gsubr ("SDL_Init", 1, 0, 0, gacela_SDL_Init); + scm_c_define_gsubr ("SDL_Quit", 0, 0, 0, gacela_SDL_Quit); + scm_c_define_gsubr ("SDL_SetVideoMode", 4, 0, 0, gacela_SDL_SetVideoMode); return NULL; }