]> Pileus Git - grits/blobdiff - src/opengl.c
adding initial ridge overlay code, swiching from cubes to teapots, and a few other...
[grits] / src / opengl.c
index f348d71a0d05e5d9f3f6077421c49c561ad36f85..9a369eca3afb096bb7c0a08bc8a0faedfacf44a6 100644 (file)
@@ -30,9 +30,9 @@ static gboolean expose_end(GtkWidget *da, GdkEventExpose *event, gpointer user_d
 
        return FALSE;
 }
-static gboolean configure(GtkWidget *da, GdkEventConfigure *event, gpointer user_data)
+static gboolean configure_start(GtkWidget *da, GdkEventConfigure *event, gpointer user_data)
 {
-       GdkGLContext *glcontext = gtk_widget_get_gl_context(da);
+       GdkGLContext  *glcontext  = gtk_widget_get_gl_context(da);
        GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(da);
 
        if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext))
@@ -40,24 +40,28 @@ static gboolean configure(GtkWidget *da, GdkEventConfigure *event, gpointer user
 
        glLoadIdentity();
        glViewport(0, 0, da->allocation.width, da->allocation.height);
-       glOrtho(-10,10,-10,10,-20050,10000);
        glEnable(GL_BLEND);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+       //glEnable(GL_ALPHA_TEST);
+       //glAlphaFunc(GL_EQUAL, 0);
+       double scale = 500*1000; // 500 km
+       glOrtho(-scale,scale,-scale,scale,0,10000);
 
-       glScalef(10., 10., 10.);
-       
+       return FALSE;
+}
+static gboolean configure_end(GtkWidget *da, GdkEventConfigure *event, gpointer user_data)
+{
+       GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(da);
        gdk_gl_drawable_gl_end(gldrawable);
-
        return FALSE;
 }
 
 gboolean opengl_init(GtkDrawingArea *drawing, GtkNotebook *config)
 {
        /* Set up OpenGL Stuff */
-       g_signal_connect(drawing, "configure-event", G_CALLBACK(configure), NULL);
-       
-       //g_signal_connect(drawing, "expose-event", G_CALLBACK(expose), NULL);
-       g_signal_connect      (drawing, "expose-event", G_CALLBACK(expose_start), NULL);
-       g_signal_connect_after(drawing, "expose-event", G_CALLBACK(expose_end),   NULL);
+       g_signal_connect      (drawing, "configure-event", G_CALLBACK(configure_start), NULL);
+       g_signal_connect_after(drawing, "configure-event", G_CALLBACK(configure_end),   NULL);
+       g_signal_connect      (drawing, "expose-event",    G_CALLBACK(expose_start),    NULL);
+       g_signal_connect_after(drawing, "expose-event",    G_CALLBACK(expose_end),      NULL);
        return TRUE;
 }