+ surface_tag = scm_make_smob_type ("surface", sizeof (struct surface));
+ scm_set_smob_mark (surface_tag, mark_surface);
+ scm_set_smob_free (surface_tag, free_surface);
+ scm_set_smob_print (surface_tag, print_surface);
+ scm_c_define_gsubr ("surface-w", 1, 0, 0, get_surface_width);
+ scm_c_define_gsubr ("surface-h", 1, 0, 0, get_surface_height);
+ scm_c_define_gsubr ("surface-pixels", 1, 0, 0, get_surface_pixels);
+ scm_c_define_gsubr ("surface-format-BytesPerPixel", 1, 0, 0, get_surface_format_BytesPerPixel);
+
+ scm_c_define ("SDL_INIT_TIMER", scm_from_int (SDL_INIT_TIMER));
+ scm_c_define ("SDL_INIT_AUDIO", scm_from_int (SDL_INIT_AUDIO));
+ scm_c_define ("SDL_INIT_VIDEO", scm_from_int (SDL_INIT_VIDEO));
+ scm_c_define ("SDL_INIT_CDROM", scm_from_int (SDL_INIT_CDROM));
+ scm_c_define ("SDL_INIT_JOYSTICK", scm_from_int (SDL_INIT_JOYSTICK));
+ scm_c_define ("SDL_INIT_NOPARACHUTE", scm_from_int (SDL_INIT_NOPARACHUTE));
+ scm_c_define ("SDL_INIT_EVENTTHREAD", scm_from_int (SDL_INIT_EVENTTHREAD));
+ scm_c_define ("SDL_INIT_EVERYTHING", scm_from_int (SDL_INIT_EVERYTHING));
+
+ scm_c_define ("SDL_SWSURFACE", scm_from_int (SDL_SWSURFACE));
+ scm_c_define ("SDL_HWSURFACE", scm_from_int (SDL_HWSURFACE));
+ scm_c_define ("SDL_ASYNCBLIT", scm_from_int (SDL_ASYNCBLIT));
+
+ scm_c_define ("SDL_ANYFORMAT", scm_from_int (SDL_ANYFORMAT));
+ scm_c_define ("SDL_HWPALETTE", scm_from_int (SDL_HWPALETTE));
+ scm_c_define ("SDL_DOUBLEBUF", scm_from_int (SDL_DOUBLEBUF));
+ scm_c_define ("SDL_FULLSCREEN", scm_from_int (SDL_FULLSCREEN));
+ scm_c_define ("SDL_OPENGL", scm_from_int (SDL_OPENGL));
+ scm_c_define ("SDL_OPENGLBLIT", scm_from_int (SDL_OPENGLBLIT));
+ scm_c_define ("SDL_RESIZABLE", scm_from_int (SDL_RESIZABLE));
+ scm_c_define ("SDL_NOFRAME", scm_from_int (SDL_NOFRAME));
+
+ scm_c_define ("SDL_HWACCEL", scm_from_int (SDL_HWACCEL));
+ scm_c_define ("SDL_SRCCOLORKEY", scm_from_int (SDL_SRCCOLORKEY));
+
+ scm_c_define ("SDL_GL_DOUBLEBUFFER", scm_from_int (SDL_GL_DOUBLEBUFFER));
+
+ scm_c_define ("SDL_DEFAULT_REPEAT_DELAY", scm_from_int (SDL_DEFAULT_REPEAT_DELAY));
+ scm_c_define ("SDL_DEFAULT_REPEAT_INTERVAL", scm_from_int (SDL_DEFAULT_REPEAT_INTERVAL));
+
+ scm_c_define ("SDL_LIL_ENDIAN", scm_from_int (SDL_LIL_ENDIAN));
+ scm_c_define ("SDL_BIG_ENDIAN", scm_from_int (SDL_BIG_ENDIAN));
+ scm_c_define ("SDL_BYTEORDER", scm_from_int (SDL_BYTEORDER));
+
+ scm_c_define ("MIX_DEFAULT_FORMAT", scm_from_int (MIX_DEFAULT_FORMAT));
+
+ scm_c_define ("SDL_NOEVENT", scm_from_int (SDL_NOEVENT));
+ scm_c_define ("SDL_ACTIVEEVENT", scm_from_int (SDL_ACTIVEEVENT));
+ scm_c_define ("SDL_KEYDOWN", scm_from_int (SDL_KEYDOWN));
+ scm_c_define ("SDL_KEYUP", scm_from_int (SDL_KEYUP));
+ scm_c_define ("SDL_MOUSEMOTION", scm_from_int (SDL_MOUSEMOTION));
+ scm_c_define ("SDL_MOUSEBUTTONDOWN", scm_from_int (SDL_MOUSEBUTTONDOWN));
+ scm_c_define ("SDL_MOUSEBUTTONUP", scm_from_int (SDL_MOUSEBUTTONUP));
+ scm_c_define ("SDL_JOYAXISMOTION", scm_from_int (SDL_JOYAXISMOTION));
+ scm_c_define ("SDL_JOYBALLMOTION", scm_from_int (SDL_JOYBALLMOTION));
+ scm_c_define ("SDL_JOYHATMOTION", scm_from_int (SDL_JOYHATMOTION));
+ scm_c_define ("SDL_JOYBUTTONDOWN", scm_from_int (SDL_JOYBUTTONDOWN));
+ scm_c_define ("SDL_JOYBUTTONUP", scm_from_int (SDL_JOYBUTTONUP));
+ scm_c_define ("SDL_QUIT", scm_from_int (SDL_QUIT));
+ scm_c_define ("SDL_SYSWMEVENT", scm_from_int (SDL_SYSWMEVENT));
+ scm_c_define ("SDL_EVENT_RESERVEDA", scm_from_int (SDL_EVENT_RESERVEDA));
+ scm_c_define ("SDL_EVENT_RESERVEDB", scm_from_int (SDL_EVENT_RESERVEDB));
+ scm_c_define ("SDL_VIDEORESIZE", scm_from_int (SDL_VIDEORESIZE));
+ scm_c_define ("SDL_VIDEOEXPOSE", scm_from_int (SDL_VIDEOEXPOSE));
+ scm_c_define ("SDL_EVENT_RESERVED2", scm_from_int (SDL_EVENT_RESERVED2));
+ scm_c_define ("SDL_EVENT_RESERVED3", scm_from_int (SDL_EVENT_RESERVED3));
+ scm_c_define ("SDL_EVENT_RESERVED4", scm_from_int (SDL_EVENT_RESERVED4));
+ scm_c_define ("SDL_EVENT_RESERVED5", scm_from_int (SDL_EVENT_RESERVED5));
+ scm_c_define ("SDL_EVENT_RESERVED6", scm_from_int (SDL_EVENT_RESERVED6));
+ scm_c_define ("SDL_EVENT_RESERVED7", scm_from_int (SDL_EVENT_RESERVED7));
+ scm_c_define ("SDL_USEREVENT", scm_from_int (SDL_USEREVENT));
+ scm_c_define ("SDL_NUMEVENTS", scm_from_int (SDL_NUMEVENTS));
+
+ 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);
+ scm_c_define_gsubr ("SDL_WM_SetCaption", 2, 0, 0, gacela_SDL_WM_SetCaption);
+ scm_c_define_gsubr ("SDL_Flip", 1, 0, 0, gacela_SDL_Flip);
+ scm_c_define_gsubr ("SDL_Delay", 1, 0, 0, gacela_SDL_Delay);
+ scm_c_define_gsubr ("SDL_GetTicks", 0, 0, 0, gacela_SDL_GetTicks);
+ scm_c_define_gsubr ("SDL_DisplayFormat", 1, 0, 0, gacela_SDL_DisplayFormat);
+ scm_c_define_gsubr ("SDL_MapRGB", 4, 0, 0, gacela_SDL_MapRGB);
+ scm_c_define_gsubr ("SDL_SetColorKey", 3, 0, 0, gacela_SDL_SetColorKey);
+ scm_c_define_gsubr ("SDL_LoadBMP", 1, 0, 0, gacela_SDL_LoadBMP);
+ scm_c_define_gsubr ("IMG_Load", 1, 0, 0, gacela_IMG_Load);
+ scm_c_define_gsubr ("SDL_GetVideoInfo", 0, 0, 0, gacela_SDL_GetVideoInfo);
+ scm_c_define_gsubr ("SDL_GL_SetAttribute", 2, 0, 0, gacela_SDL_GL_SetAttribute);
+ scm_c_define_gsubr ("SDL_PollEvent", 0, 0, 0, gacela_SDL_PollEvent);
+ scm_c_define_gsubr ("SDL_GL_SwapBuffers", 0, 0, 0, gacela_SDL_GL_SwapBuffers);
+ scm_c_define_gsubr ("SDL_EnableKeyRepeat", 2, 0, 0, gacela_SDL_EnableKeyRepeat);
+ scm_c_define_gsubr ("Mix_OpenAudio", 4, 0, 0, gacela_Mix_OpenAudio);
+ scm_c_define_gsubr ("Mix_LoadMUS", 1, 0, 0, gacela_Mix_LoadMUS);
+ scm_c_define_gsubr ("Mix_LoadWAV", 1, 0, 0, gacela_Mix_LoadWAV);
+ scm_c_define_gsubr ("Mix_PlayChannel", 3, 0, 0, gacela_Mix_PlayChannel);
+ scm_c_define_gsubr ("Mix_PlayMusic", 2, 0, 0, gacela_Mix_PlayMusic);
+ scm_c_define_gsubr ("Mix_PlayingMusic", 0, 0, 0, gacela_Mix_PlayingMusic);
+ scm_c_define_gsubr ("Mix_PausedMusic", 0, 0, 0, gacela_Mix_PausedMusic);
+ scm_c_define_gsubr ("Mix_PauseMusic", 0, 0, 0, gacela_Mix_PauseMusic);
+ scm_c_define_gsubr ("Mix_ResumeMusic", 0, 0, 0, gacela_Mix_ResumeMusic);
+ scm_c_define_gsubr ("Mix_HaltMusic", 0, 0, 0, gacela_Mix_HaltMusic);
+ scm_c_define_gsubr ("Mix_FreeMusic", 1, 0, 0, gacela_Mix_FreeMusic);
+ scm_c_define_gsubr ("Mix_FreeChunk", 1, 0, 0, gacela_Mix_FreeChunk);
+ scm_c_define_gsubr ("Mix_CloseAudio", 0, 0, 0, gacela_Mix_CloseAudio);
+