]> Pileus Git - aweather/commitdiff
Update objects for new Grits expose settings
authorAndy Spencer <andy753421@gmail.com>
Mon, 6 Feb 2012 05:50:00 +0000 (05:50 +0000)
committerAndy Spencer <andy753421@gmail.com>
Mon, 6 Feb 2012 05:50:00 +0000 (05:50 +0000)
All objects are drawn with sorting (depth testing) disabled except for
the Level-II sweeps and volume scans. The order things appear is
determined based on the level they are drawn in since depth testing
works across levels now.

The order is as follows, from lowest to highest:

  WORLD+1 - Counties outlines     - no depth test
  WORLD+1 - County-based warnings - no depth test
  WORLD+2 - Conus radar overlays  - no depth test
  WORLD+3 - Level-II radar sweeps - depth test enabled
  WORLD+4 - Storm-based warnings  - no depth test
  WORLD+5 - Level-II Volume scans - depth test enabled
  OVERLAY - Level-II site markers - no depth test
  HUD     - Level-II color table  - no depth test

The advantage to this order is that:
  - County-based warnings do not effect the radar colors
  - Level-II sweeps do not hide storm-based warnings
  - Storm based warnings don't show through volume scans

src/plugins/alert.c
src/plugins/level2.c
src/plugins/radar.c

index a82528b874c3574f8856fe05454a437889300125..ee9b1434803536bfc94317ea534b59361832983a 100644 (file)
@@ -575,7 +575,7 @@ static GritsPoly *_load_storm_based(GritsPluginAlert *alert, AlertMsg *msg)
 
        GritsPoly *poly = grits_poly_parse(msg->polygon, "\t", " ", ",");
        _load_common(alert, msg, poly, 0, 1, 3, "alert/hide_storm_based");
-       grits_viewer_add(alert->viewer, GRITS_OBJECT(poly), GRITS_LEVEL_WORLD+2, TRUE);
+       grits_viewer_add(alert->viewer, GRITS_OBJECT(poly), GRITS_LEVEL_WORLD+4, FALSE);
 
        return poly;
 }
index c6b71949c804b80df538026ceb8b7d8a43806e30..7a4bb44559e7fb56183872a81cfc45abc01caf81 100644 (file)
@@ -323,7 +323,7 @@ void aweather_level2_set_iso(AWeatherLevel2 *level2, gfloat level)
                vol->disp = GRITS_VOLUME_SURFACE;
                GRITS_OBJECT(vol)->center = GRITS_OBJECT(level2)->center;
                grits_viewer_add(GRITS_OBJECT(level2)->viewer,
-                               GRITS_OBJECT(vol), GRITS_LEVEL_WORLD+1, FALSE);
+                               GRITS_OBJECT(vol), GRITS_LEVEL_WORLD+5, TRUE);
                level2->volume = vol;
        }
        if (ISO_MIN < level && level < ISO_MAX) {
index 016aa912de735c8ecab5a3e8b740d449cfc98ab6..a79afb1c72fee1daec9a4d1605924d7d61e89633 100644 (file)
@@ -182,7 +182,7 @@ gpointer _site_update_thread(gpointer _site)
        }
        grits_object_hide(GRITS_OBJECT(site->level2), site->hidden);
        grits_viewer_add(site->viewer, GRITS_OBJECT(site->level2),
-                       GRITS_LEVEL_WORLD+1, TRUE);
+                       GRITS_LEVEL_WORLD+3, TRUE);
 
 out:
        g_idle_add(_site_update_end, site);
@@ -572,8 +572,8 @@ RadarConus *radar_conus_new(GtkWidget *pconfig,
        conus->tile[1] = grits_tile_new(NULL, CONUS_NORTH, south, east, mid);
        conus->tile[0]->zindex = 2;
        conus->tile[1]->zindex = 1;
-       grits_viewer_add(viewer, GRITS_OBJECT(conus->tile[0]), GRITS_LEVEL_WORLD, TRUE);
-       grits_viewer_add(viewer, GRITS_OBJECT(conus->tile[1]), GRITS_LEVEL_WORLD, TRUE);
+       grits_viewer_add(viewer, GRITS_OBJECT(conus->tile[0]), GRITS_LEVEL_WORLD+2, FALSE);
+       grits_viewer_add(viewer, GRITS_OBJECT(conus->tile[1]), GRITS_LEVEL_WORLD+2, FALSE);
 
        conus->time_id = g_signal_connect_swapped(viewer, "time-changed",
                        G_CALLBACK(_conus_update), conus);