(data->alpha ? GL_RGBA : GL_RGB), GL_UNSIGNED_BYTE, data->pixels);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glFlush();
data->tile->data = tex;
map->viewer = g_object_ref(viewer);
/* Load initial tiles */
- _load_tile(map->tiles, map);
_update_tiles(NULL, map);
/* Connect signals */
map->aborted = TRUE;
/* Drop references */
if (map->viewer) {
- g_signal_handler_disconnect(map->viewer, map->sigid);
- grits_viewer_remove(map->viewer, GRITS_OBJECT(map->tiles));
+ GritsViewer *viewer = map->viewer;
+ map->viewer = NULL;
+ g_signal_handler_disconnect(viewer, map->sigid);
+ grits_viewer_remove(viewer, GRITS_OBJECT(map->tiles));
soup_session_abort(map->tms->http->soup);
//soup_session_abort(map->wms->http->soup);
g_thread_pool_free(map->threads, TRUE, TRUE);
while (gtk_events_pending())
gtk_main_iteration();
- g_object_unref(map->viewer);
- map->viewer = NULL;
+ g_object_unref(viewer);
}
G_OBJECT_CLASS(grits_plugin_map_parent_class)->dispose(gobject);
}