]> Pileus Git - aweather/blobdiff - src/plugins/radar.c
Prevent multiple sites from loading simultaneously
[aweather] / src / plugins / radar.c
index 62b55c0ec501640ec8170aa24e61f3b049a937b7..beeb3d0907a5c15bbe84ca0a4939f0b1f02a3f86 100644 (file)
@@ -21,7 +21,6 @@
 #include <glib/gstdio.h>
 #include <gtk/gtk.h>
 #include <gio/gio.h>
-#include <GL/gl.h>
 #include <math.h>
 #include <rsl.h>
 
@@ -252,6 +251,8 @@ void radar_site_load(RadarSite *site)
        gtk_notebook_append_page(GTK_NOTEBOOK(site->pconfig), site->config,
                        gtk_label_new(site->city->name));
        gtk_widget_show_all(site->config);
+       if (gtk_notebook_get_current_page(GTK_NOTEBOOK(site->pconfig)) == 0)
+               gtk_notebook_set_current_page(GTK_NOTEBOOK(site->pconfig), -1);
 
        /* Set up radar loading */
        site->time_id = g_signal_connect_swapped(site->viewer, "time-changed",
@@ -304,6 +305,7 @@ RadarSite *radar_site_new(city_t *city, GtkWidget *pconfig,
                        "level2" G_DIR_SEPARATOR_S);
        site->city    = city;
        site->pconfig = pconfig;
+       site->hidden  = TRUE;
 
        /* Set initial location */
        gdouble lat, lon, elev;
@@ -377,13 +379,14 @@ static void _conus_update_end_copy(GritsTile *tile, guchar *pixels)
                glGenTextures(1, tile->data);
        }
 
+       gchar *clear = g_malloc0(2048*2048*4);
        guint *tex = tile->data;
        glBindTexture(GL_TEXTURE_2D, *tex);
 
        glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
        glPixelStorei(GL_PACK_ALIGNMENT, 1);
        glTexImage2D(GL_TEXTURE_2D, 0, 4, 2048, 2048, 0,
-                       GL_RGBA, GL_UNSIGNED_BYTE, NULL);
+                       GL_RGBA, GL_UNSIGNED_BYTE, clear);
        glTexSubImage2D(GL_TEXTURE_2D, 0, 1,1, CONUS_WIDTH/2,CONUS_HEIGHT,
                        GL_RGBA, GL_UNSIGNED_BYTE, pixels);
        tile->coords.n = 1.0/(CONUS_WIDTH/2);
@@ -395,6 +398,7 @@ static void _conus_update_end_copy(GritsTile *tile, guchar *pixels)
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
        glFlush();
+       g_free(clear);
 }
 
 /* Split the pixbuf into east and west halves (with 2K sides)