-#include <SDL/SDL.h>
#include <GL/gl.h>
#include <libguile.h>
-#include <pthread.h>
-
-int contador = 0;
-int incremento = 1;
-
-SCM prueba () {
- int flags;
-
- SDL_Init (SDL_INIT_EVERYTHING);
-
- SDL_GL_SetAttribute (SDL_GL_DOUBLEBUFFER, 1);
-
- flags = SDL_OPENGL | SDL_GL_DOUBLEBUFFER | SDL_HWPALETTE | SDL_RESIZABLE | SDL_SWSURFACE;
- SDL_SetVideoMode (200, 200, 32, flags);
-
- glShadeModel (GL_SMOOTH);
- glClearColor (0, 0, 0, 0);
- glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
- glViewport (0, 0, 200, 200);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- glOrtho (-200, 200, -200, 200, 0, 1);
- glMatrixMode (GL_MODELVIEW);
- glLoadIdentity ();
-
- return SCM_UNSPECIFIED;
-}
-
-void *bucle () {
- while (1) {
- contador = contador + incremento;
- if (contador > 1000) incremento = -1;
- else if (contador < 0) incremento = 1;
- }
- pthread_exit(NULL);
-}
-
-SCM lanzar_bucle () {
- pthread_t t;
-
- pthread_create(&t, NULL, bucle, NULL);
- return SCM_UNSPECIFIED;
-}
-
-SCM ver_contador () {
- return scm_from_int(contador);
-}
+#include "gacela_SDL.h"
static void*
register_functions (void* data)
{
- scm_c_define_gsubr ("prueba", 0, 0, 0, &prueba);
- scm_c_define_gsubr ("ver-contador", 0, 0, 0, &ver_contador);
- scm_c_define_gsubr ("lanzar-bucle", 0, 0, 0, &lanzar_bucle);
- return NULL;
+ SDL_register_functions (NULL);
+ return NULL;
}
-
-int main (int argc, char *argv[]) {
-/* GSCM_status status;
- GSCM_top_level toplev;
-
- status = gscm_eval_str(NULL, toplev, "(use-modules (ice-9 readline))");
- status = gscm_eval_str(NULL, toplev, "(activate-readline)");
-*/
- scm_with_guile (®ister_functions, NULL);
- scm_c_eval_string("(set-repl-prompt! \"gacela>\")");
- scm_c_eval_string("(use-modules (ice-9 readline))");
- scm_c_eval_string("(activate-readline)");
- scm_shell (argc, argv);
+int
+main (int argc, char *argv[])
+{
+ scm_with_guile (®ister_functions, NULL);
+ scm_init_guile ();
+ scm_c_eval_string ("(set-repl-prompt! \"gacela>\")");
+ scm_c_eval_string ("(use-modules (ice-9 readline))");
+ scm_c_eval_string ("(activate-readline)");
+ scm_shell (argc, argv);
}
-