- struct _LoadTileData *data = _data;
- GisPluginSat *self = data->self;
- GisTile *tile = data->tile;
- GdkPixbuf *pixbuf = data->pixbuf;
- g_free(data);
-
- /* Create Texture */
- g_debug("GisPluginSat: _load_tile_cb start");
- guchar *pixels = gdk_pixbuf_get_pixels(pixbuf);
- gboolean alpha = gdk_pixbuf_get_has_alpha(pixbuf);
- gint width = gdk_pixbuf_get_width(pixbuf);
- gint height = gdk_pixbuf_get_height(pixbuf);
-
- guint *tex = g_new0(guint, 1);
- gis_viewer_begin(self->viewer);
- glGenTextures(1, tex);
- glBindTexture(GL_TEXTURE_2D, *tex);
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glPixelStorei(GL_PACK_ALIGNMENT, 1);
- glTexImage2D(GL_TEXTURE_2D, 0, 4, width, height, 0,
- (alpha ? GL_RGBA : GL_RGB), GL_UNSIGNED_BYTE, pixels);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);
- glFlush();
- gis_viewer_end(self->viewer);
-
- tile->data = tex;
- gtk_widget_queue_draw(GTK_WIDGET(self->viewer));
- g_object_unref(pixbuf);
- return FALSE;
-}
+ GritsTile *tile = _tile;
+ GritsPluginSat *sat = _sat;
+
+ g_debug("GritsPluginSat: _load_tile_thread start %p - tile=%p",
+ g_thread_self(), tile);
+ if (sat->aborted) {
+ g_debug("GritsPluginSat: _load_tile_thread - aborted");
+ return;
+ }