[libgis] Add z-index to tiles
- From: Andy Spencer <andys src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgis] Add z-index to tiles
- Date: Fri, 10 Sep 2010 03:16:23 +0000 (UTC)
commit 14c34a746fc94a9e5477d081275f04bd1c8b5d6d
Author: Andy Spencer <andy753421 gmail com>
Date: Mon Apr 19 06:27:17 2010 +0000
Add z-index to tiles
Tiles are still drawn on the ground, Z-indexes are used as polygon
offsets so that you can draw things like composite radar images above
the satellite imagery.
src/gis-opengl.c | 2 ++
src/objects/gis-tile.h | 3 +++
src/plugins/sat.c | 2 +-
3 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/src/gis-opengl.c b/src/gis-opengl.c
index 9f1940b..57cfb47 100644
--- a/src/gis-opengl.c
+++ b/src/gis-opengl.c
@@ -178,7 +178,9 @@ static void _draw_tile(GisOpenGL *opengl, GisTile *tile, GList *triangles)
if (lat[2] == 90 || lat[2] == -90) xy[2][0] = 0.5;
glEnable(GL_TEXTURE_2D);
+ glEnable(GL_POLYGON_OFFSET_FILL);
glBindTexture(GL_TEXTURE_2D, *(guint*)tile->data);
+ glPolygonOffset(0, -tile->zindex);
glBegin(GL_TRIANGLES);
glNormal3dv(tri->p.r->norm); glTexCoord2dv(xy[0]); glVertex3dv((double*)tri->p.r);
glNormal3dv(tri->p.m->norm); glTexCoord2dv(xy[1]); glVertex3dv((double*)tri->p.m);
diff --git a/src/objects/gis-tile.h b/src/objects/gis-tile.h
index 4ebf7ef..e2b7252 100644
--- a/src/objects/gis-tile.h
+++ b/src/objects/gis-tile.h
@@ -38,6 +38,9 @@ struct _GisTile {
/* Pointer to the tile data */
gpointer data;
+ /* Pointer to the tile data */
+ gint zindex;
+
/* North,South,East,West limits */
GisBBox edge;
diff --git a/src/plugins/sat.c b/src/plugins/sat.c
index 66150be..9e1af30 100644
--- a/src/plugins/sat.c
+++ b/src/plugins/sat.c
@@ -179,7 +179,7 @@ GisPluginSat *gis_plugin_sat_new(GisViewer *viewer)
G_CALLBACK(_on_location_changed), sat);
/* Add renderers */
- gis_viewer_add(viewer, GIS_OBJECT(sat->tiles), GIS_LEVEL_WORLD, 0);
+ gis_viewer_add(viewer, GIS_OBJECT(sat->tiles), GIS_LEVEL_WORLD, FALSE);
return sat;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]