]> Pileus Git - grits/blobdiff - src/gis-opengl.c
Test pure distance based errors
[grits] / src / gis-opengl.c
index 970984208e32d85f47dae5948e6833ec14fb5d4b..3b4355bf297c5775f0f0f2eabaf492fdd1c45ce5 100644 (file)
@@ -100,11 +100,11 @@ static void _set_visuals(GisOpenGL *opengl)
 #ifndef ROAM_DEBUG
        glCullFace(GL_BACK);
        glEnable(GL_CULL_FACE);
-#endif
 
        glClearDepth(1.0);
        glDepthFunc(GL_LEQUAL);
        glEnable(GL_DEPTH_TEST);
+#endif
 
        glEnable(GL_LINE_SMOOTH);
 
@@ -200,20 +200,22 @@ static gboolean on_expose(GisOpenGL *opengl, GdkEventExpose *event, gpointer _)
 
        _set_visuals(opengl);
 #ifdef ROAM_DEBUG
-       glColor4f(0.0, 0.0, 9.0, 0.6);
+       glColor4f(1.0, 1.0, 1.0, 1.0);
+       glLineWidth(2);
        glDisable(GL_TEXTURE_2D);
        glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
        roam_sphere_draw(opengl->sphere);
+       (void)_draw_level;
        //roam_sphere_draw_normals(opengl->sphere);
 #else
        g_mutex_lock(opengl->objects_lock);
        g_tree_foreach(opengl->objects, _draw_level, opengl);
-       g_mutex_unlock(opengl->objects_lock);
        if (opengl->wireframe) {
                glClear(GL_DEPTH_BUFFER_BIT);
                glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
                roam_sphere_draw(opengl->sphere);
        }
+       g_mutex_unlock(opengl->objects_lock);
 #endif
 
        GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(GTK_WIDGET(opengl));
@@ -247,6 +249,12 @@ static gboolean on_key_press(GisOpenGL *opengl, GdkEventKey *event, gpointer _)
 static gboolean _update_errors_cb(gpointer _opengl)
 {
        GisOpenGL *opengl = _opengl;
+       gdouble lat, lon, elev;
+       gis_viewer_get_location(GIS_VIEWER(opengl), &lat, &lon, &elev);
+       lle2xyz(lat, lon, elev,
+               &opengl->sphere->view->pos[0],
+               &opengl->sphere->view->pos[1],
+               &opengl->sphere->view->pos[2]);
        g_mutex_lock(opengl->sphere_lock);
        roam_sphere_update_errors(opengl->sphere);
        g_mutex_unlock(opengl->sphere_lock);
@@ -263,6 +271,8 @@ static void on_view_changed(GisOpenGL *opengl,
                opengl->ue_source = g_idle_add_full(G_PRIORITY_HIGH_IDLE+30,
                                _update_errors_cb, opengl, NULL);
        //roam_sphere_update_errors(opengl->sphere);
+#else
+       (void)_update_errors_cb;
 #endif
 }
 
@@ -446,6 +456,9 @@ static void gis_opengl_init(GisOpenGL *opengl)
 #ifndef ROAM_DEBUG
        opengl->sm_source[0] = g_timeout_add_full(G_PRIORITY_HIGH_IDLE+30, 33,  (GSourceFunc)on_idle, opengl, NULL);
        opengl->sm_source[1] = g_timeout_add_full(G_PRIORITY_HIGH_IDLE+10, 500, (GSourceFunc)on_idle, opengl, NULL);
+#else
+       (void)on_idle;
+       (void)_update_errors_cb;
 #endif
 
        gtk_widget_add_events(GTK_WIDGET(opengl), GDK_KEY_PRESS_MASK);