]> Pileus Git - grits/blobdiff - src/gis-opengl.c
GisTile: use g_object_unref instead of g_free
[grits] / src / gis-opengl.c
index 420e21332fb968ffd16761cde456c96a012e6ec4..65821d74038872e2f04d09d51d3dd77466b88e25 100644 (file)
@@ -296,7 +296,6 @@ static void _unload_object(GisOpenGL *self, GisObject *object)
        g_debug("GisOpenGL: unload_object");
        if (GIS_IS_MARKER(object)) {
                GisMarker *marker = GIS_MARKER(object);
-               g_debug("delete_texture: %d", marker->tex);
                glDeleteTextures(1, &marker->tex);
        }
 }
@@ -395,6 +394,7 @@ static gboolean on_expose(GisOpenGL *self, GdkEventExpose *event, gpointer _)
 #else
        g_tree_foreach(self->objects, _draw_level, self);
        if (self->wireframe) {
+               glClear(GL_DEPTH_BUFFER_BIT);
                glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
                roam_sphere_draw(self->sphere);
        }
@@ -444,7 +444,8 @@ static void on_view_changed(GisOpenGL *self,
        gdk_threads_enter();
        _set_visuals(self);
 #ifndef ROAM_DEBUG
-       g_idle_add_full(G_PRIORITY_HIGH_IDLE+30, _update_errors_cb, self->sphere, NULL);
+       self->ue_source = g_idle_add_full(G_PRIORITY_HIGH_IDLE+30,
+                       _update_errors_cb, self->sphere, NULL);
        //roam_sphere_update_errors(self->sphere);
 #endif
        gdk_threads_leave();
@@ -651,6 +652,10 @@ static void gis_opengl_dispose(GObject *_self)
                g_source_remove(self->sm_source[1]);
                self->sm_source[1] = 0;
        }
+       if (self->ue_source) {
+               g_source_remove(self->ue_source);
+               self->ue_source = 0;
+       }
        G_OBJECT_CLASS(gis_opengl_parent_class)->dispose(_self);
 }
 static void gis_opengl_finalize(GObject *_self)