|
- #include <SDL.h>
-
- #include <stdio.h>
- #include <math.h>
-
- #include "gtkvideo.h"
- #include "game.h"
-
- #include <math.h>
- #include <gtk/gtk.h>
- #include <gtkgl/gtkglarea.h>
- #include <GL/gl.h>
-
- volatile int quit = 0;
-
- static gint main_quit(GtkWidget *widget, GdkEventExpose *event)
- {
- quit = 1;
- return FALSE;
- }
-
- int main(int argc, char **argv)
- {
- GtkWidget *window, *glarea;
-
- /* initialize gtk */
- gtk_init(&argc, &argv);
-
- /* Create new top level window. */
- window = gtk_window_new( GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(window), "Simple");
- gtk_container_set_border_width(GTK_CONTAINER(window), 10);
-
- /* Quit form main if got delete event */
- gtk_signal_connect(GTK_OBJECT(window), "delete_event",
- GTK_SIGNAL_FUNC(main_quit), NULL);
-
-
- /* You should always delete gtk_gl_area widgets before exit or else
- GLX contexts are left undeleted, this may cause problems (=core dump)
- in some systems.
- Destroy method of objects is not automatically called on exit.
- You need to manually enable this feature. Do gtk_quit_add_destroy()
- for all your top level windows unless you are certain that they get
- destroy signal by other means.
- */
- gtk_quit_add_destroy(1, GTK_OBJECT(window));
-
-
- /* Create new OpenGL widget. */
- GtkVideo *video = new GtkVideo("LOL", 640, 480);
- glarea = GTK_WIDGET(video->GetWidget());
-
- /* put glarea into window and show it all */
- gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(glarea));
- gtk_widget_show(GTK_WIDGET(glarea));
- gtk_widget_show(GTK_WIDGET(window));
-
- while (g_main_context_iteration(NULL, FALSE));
- if (gtk_gl_area_make_current(GTK_GL_AREA(glarea))) fprintf(stderr, "OK\n");
- Game *game = new Game("maps/testmap.tmx");
-
- for (;;)
- {
- // Do GTK stuff until the user wants to quit
- while (g_main_context_iteration(NULL, FALSE));
-
- if (quit)
- break;
-
- video->PreRender();
- game->SetMouse(0, 0);
- game->Render();
- video->PostRender(33.33333f);
- }
-
- delete game;
- delete video;
-
- return 0;
- }
|