From cc88970c4a849c32ca7555e318092266529233c8 Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Thu, 7 May 2009 18:54:36 +0000 Subject: [PATCH] --- TODO | 3 +++ src/aweather.c | 2 +- src/opengl.c | 3 +-- src/radar.c | 35 ++++++++++++++++++----------------- src/ridge.c | 4 ++-- 5 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 TODO diff --git a/TODO b/TODO new file mode 100644 index 0000000..2fb9e79 --- /dev/null +++ b/TODO @@ -0,0 +1,3 @@ +Fix Z-Ordering + +- Need to draw objects from lowest to highest when using transparency diff --git a/src/aweather.c b/src/aweather.c index a1c1afb..cd5498e 100644 --- a/src/aweather.c +++ b/src/aweather.c @@ -78,8 +78,8 @@ int main(int argc, char *argv[]) /* Load plugins */ opengl_init (GTK_DRAWING_AREA(drawing), GTK_NOTEBOOK(tab_area)); - ridge_init (GTK_DRAWING_AREA(drawing), GTK_NOTEBOOK(tab_area)); radar_init (GTK_DRAWING_AREA(drawing), GTK_NOTEBOOK(tab_area)); + ridge_init (GTK_DRAWING_AREA(drawing), GTK_NOTEBOOK(tab_area)); example_init(GTK_DRAWING_AREA(drawing), GTK_NOTEBOOK(tab_area)); gtk_widget_show_all(window); diff --git a/src/opengl.c b/src/opengl.c index c943c79..43fd022 100644 --- a/src/opengl.c +++ b/src/opengl.c @@ -53,7 +53,6 @@ static gboolean configure_start(GtkWidget *da, GdkEventConfigure *event, gpointe glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glClearColor(0.8f, 0.8f, 1.0f, 0.0f); - glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); /* Depth test */ glClearDepth(1.0); @@ -65,7 +64,7 @@ static gboolean configure_start(GtkWidget *da, GdkEventConfigure *event, gpointe glLoadIdentity(); double rad = atan(height/2*1000.0/dist); // 1px = 1000 meters double deg = (rad*180)/M_PI; - gluPerspective(deg*2, width/height, 0.1f, 1000000000.0f); + gluPerspective(deg*2, width/height, dist-20, dist+20); /* Camera position? */ glMatrixMode(GL_MODELVIEW); diff --git a/src/radar.c b/src/radar.c index f397263..1b611ec 100644 --- a/src/radar.c +++ b/src/radar.c @@ -115,6 +115,7 @@ static gboolean expose(GtkWidget *da, GdkEventExpose *event, gpointer user_data) /* Draw the rays */ + glMatrixMode(GL_MODELVIEW); glPushMatrix(); glBindTexture(GL_TEXTURE_2D, sweep_tex); glEnable(GL_TEXTURE_2D); @@ -137,11 +138,11 @@ static gboolean expose(GtkWidget *da, GdkEventExpose *event, gpointer user_data) /* (find middle of bin) / scale for opengl */ // near left glTexCoord2f(0.0, (double)ri/sweep->h.nrays); - glVertex3f(lx*near_dist, ly*near_dist, 1.0); + glVertex3f(lx*near_dist, ly*near_dist, 2.0); // far left glTexCoord2f(1.0, (double)ri/sweep->h.nrays); - glVertex3f(lx*far_dist, ly*far_dist, 1.0); + glVertex3f(lx*far_dist, ly*far_dist, 2.0); } //g_print("ri=%d, nr=%d, bw=%f\n", _ri, sweep->h.nrays, sweep->h.beam_width); glEnd(); @@ -156,21 +157,21 @@ static gboolean expose(GtkWidget *da, GdkEventExpose *event, gpointer user_data) //glEnd(); /* Print the color table */ - glDisable(GL_TEXTURE_2D); - glMatrixMode(GL_MODELVIEW ); glPushMatrix(); glLoadIdentity(); - glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); - glBegin(GL_QUADS); - int i; - for (i = 0; i < nred; i++) { - glColor4ub(red[i], green[i], blue[i], get_alpha(i)); - glVertex3f(-1.0, (float)((i ) - nred/2)/(nred/2), 0.0); // bot left - glVertex3f(-1.0, (float)((i+1) - nred/2)/(nred/2), 0.0); // top left - glVertex3f(-0.9, (float)((i+1) - nred/2)/(nred/2), 0.0); // top right - glVertex3f(-0.9, (float)((i ) - nred/2)/(nred/2), 0.0); // bot right - } - glEnd(); - glMatrixMode(GL_PROJECTION); glPopMatrix(); - glMatrixMode(GL_MODELVIEW ); glPopMatrix(); + //glDisable(GL_TEXTURE_2D); + //glMatrixMode(GL_MODELVIEW ); glPushMatrix(); glLoadIdentity(); + //glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); + //glBegin(GL_QUADS); + //int i; + //for (i = 0; i < nred; i++) { + // glColor4ub(red[i], green[i], blue[i], get_alpha(i)); + // glVertex3f(-1.0, (float)((i ) - nred/2)/(nred/2), 0.0); // bot left + // glVertex3f(-1.0, (float)((i+1) - nred/2)/(nred/2), 0.0); // top left + // glVertex3f(-0.9, (float)((i+1) - nred/2)/(nred/2), 0.0); // top right + // glVertex3f(-0.9, (float)((i ) - nred/2)/(nred/2), 0.0); // bot right + //} + //glEnd(); + //glMatrixMode(GL_PROJECTION); glPopMatrix(); + //glMatrixMode(GL_MODELVIEW ); glPopMatrix(); return FALSE; } diff --git a/src/ridge.c b/src/ridge.c index 3e08d00..f6dd558 100644 --- a/src/ridge.c +++ b/src/ridge.c @@ -104,10 +104,10 @@ static gboolean expose(GtkWidget *da, GdkEventExpose *event, gpointer user_data) glBindTexture(GL_TEXTURE_2D, layers[i].tex); glBegin(GL_POLYGON); - glTexCoord2f(0.0, 0.0); glVertex3f(500*1000*-1.0, 500*1000* 1.0, layers[i].z); + glTexCoord2f(0.0, 0.0); glVertex3f(500*1000*-1.0, 500*1000* 0.0, layers[i].z); glTexCoord2f(0.0, 1.0); glVertex3f(500*1000*-1.0, 500*1000*-1.0, layers[i].z); glTexCoord2f(1.0, 1.0); glVertex3f(500*1000* 1.0, 500*1000*-1.0, layers[i].z); - glTexCoord2f(1.0, 0.0); glVertex3f(500*1000* 1.0, 500*1000* 1.0, layers[i].z); + glTexCoord2f(1.0, 0.0); glVertex3f(500*1000* 1.0, 500*1000* 0.0, layers[i].z); glEnd(); } -- 2.43.2