X-Git-Url: http://pileus.org/git/?p=grits;a=blobdiff_plain;f=src%2Fopengl.c;h=9a369eca3afb096bb7c0a08bc8a0faedfacf44a6;hp=f348d71a0d05e5d9f3f6077421c49c561ad36f85;hb=4308f69c781166b035bc0d0782fd974a9e1372b6;hpb=1398794a7901ac38c29856d6d08b5f9fac15ff1a diff --git a/src/opengl.c b/src/opengl.c index f348d71..9a369ec 100644 --- a/src/opengl.c +++ b/src/opengl.c @@ -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; }