]> git.jsancho.org Git - gacela.git/blob - src/gacela_SDL.c
(no commit message)
[gacela.git] / src / gacela_SDL.c
1 #include <libguile.h>
2 #include <SDL/SDL.h>
3 #include <SDL/SDL_image.h>
4 #include <SDL/SDL_mixer.h>
5 #include "gacela_SDL.h"
6
7 SCM
8 gacela_SDL_Init (SCM flags)
9 {
10   return scm_from_int (SDL_Init (scm_to_int (flags)));
11 }
12
13 SCM
14 gacela_SDL_Quit ()
15 {
16   SDL_Quit ();
17   return SCM_UNSPECIFIED;
18 }
19
20 SCM
21 gacela_SDL_SetVideoMode (SCM width, SCM height, SCM bpp, SCM flags)
22 {
23   return scm_from_int ((int)SDL_SetVideoMode (scm_to_int (width), scm_to_int (height), \
24                                               scm_to_int (bpp), scm_to_int (flags)));
25 }
26
27 SCM
28 gacela_SDL_WM_SetCaption (SCM title, SCM icon)
29 {
30   SDL_WM_SetCaption (scm_to_locale_string(title), scm_to_locale_string(icon));
31   return SCM_UNSPECIFIED;
32 }
33
34 void*
35 SDL_register_functions (void* data)
36 {
37   scm_c_define ("SDL_INIT_TIMER", scm_from_int(SDL_INIT_TIMER));
38   scm_c_define ("SDL_INIT_AUDIO", scm_from_int(SDL_INIT_AUDIO));
39   scm_c_define ("SDL_INIT_VIDEO", scm_from_int(SDL_INIT_VIDEO));
40   scm_c_define ("SDL_INIT_CDROM", scm_from_int(SDL_INIT_CDROM));
41   scm_c_define ("SDL_INIT_JOYSTICK", scm_from_int(SDL_INIT_JOYSTICK));
42   scm_c_define ("SDL_INIT_NOPARACHUTE", scm_from_int(SDL_INIT_NOPARACHUTE));
43   scm_c_define ("SDL_INIT_EVENTTHREAD", scm_from_int(SDL_INIT_EVENTTHREAD));
44   scm_c_define ("SDL_INIT_EVERYTHING", scm_from_int(SDL_INIT_EVERYTHING));
45
46   scm_c_define ("SDL_SWSURFACE", scm_from_int(SDL_SWSURFACE));
47   scm_c_define ("SDL_HWSURFACE", scm_from_int(SDL_HWSURFACE));
48   scm_c_define ("SDL_ASYNCBLIT", scm_from_int(SDL_ASYNCBLIT));
49
50   scm_c_define ("SDL_ANYFORMAT", scm_from_int(SDL_ANYFORMAT));
51   scm_c_define ("SDL_HWPALETTE", scm_from_int(SDL_HWPALETTE));
52   scm_c_define ("SDL_DOUBLEBUF", scm_from_int(SDL_DOUBLEBUF));
53   scm_c_define ("SDL_FULLSCREEN", scm_from_int(SDL_FULLSCREEN));
54   scm_c_define ("SDL_OPENGL", scm_from_int(SDL_OPENGL));
55   scm_c_define ("SDL_OPENGLBLIT", scm_from_int(SDL_OPENGLBLIT));
56   scm_c_define ("SDL_RESIZABLE", scm_from_int(SDL_RESIZABLE));
57   scm_c_define ("SDL_NOFRAME", scm_from_int(SDL_NOFRAME));
58
59   scm_c_define ("SDL_HWACCEL", scm_from_int(SDL_HWACCEL));
60   scm_c_define ("SDL_SRCCOLORKEY", scm_from_int(SDL_SRCCOLORKEY));
61
62   scm_c_define ("SDL_GL_DOUBLEBUFFER", scm_from_int(SDL_GL_DOUBLEBUFFER));
63
64   scm_c_define ("SDL_DEFAULT_REPEAT_DELAY", scm_from_int(SDL_DEFAULT_REPEAT_DELAY));
65   scm_c_define ("SDL_DEFAULT_REPEAT_INTERVAL", scm_from_int(SDL_DEFAULT_REPEAT_INTERVAL));
66
67   scm_c_define ("SDL_LIL_ENDIAN", scm_from_int(SDL_LIL_ENDIAN));
68   scm_c_define ("SDL_BIG_ENDIAN", scm_from_int(SDL_BIG_ENDIAN));
69
70   scm_c_define ("MIX_DEFAULT_FORMAT", scm_from_int(MIX_DEFAULT_FORMAT));
71
72   scm_c_define_gsubr ("SDL_Init", 1, 0, 0, gacela_SDL_Init);
73   scm_c_define_gsubr ("SDL_Quit", 0, 0, 0, gacela_SDL_Quit);
74   scm_c_define_gsubr ("SDL_SetVideoMode", 4, 0, 0, gacela_SDL_SetVideoMode);
75   scm_c_define_gsubr ("SDL_WM_SetCaption", 2, 0, 0, gacela_SDL_WM_SetCaption);
76
77   return NULL;
78 }