X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fsky%2Fdome.cxx;h=98961fac99c0792cc457703e54674bd9c18223bd;hb=f1ab6e2533a1bf07439b3d5918430f496158d8f3;hp=74790bb030643761d85686f774bfe4abbce8675c;hpb=dda7ebfe0d6d8bd229ada23630aca47ce57e5c9f;p=simgear.git diff --git a/simgear/sky/dome.cxx b/simgear/sky/dome.cxx index 74790bb0..98961fac 100644 --- a/simgear/sky/dome.cxx +++ b/simgear/sky/dome.cxx @@ -39,7 +39,6 @@ #include #include -#include #include "dome.hxx" @@ -69,6 +68,13 @@ static int sgSkyDomePreDraw( ssgEntity *e ) { /* cout << endl << "Dome Pre Draw" << endl << "----------------" << endl << endl; */ + + ssgLeaf *f = (ssgLeaf *)e; + if ( f -> hasState () ) f->getState()->apply() ; + + glPushAttrib( GL_DEPTH_BUFFER_BIT | GL_FOG_BIT ); + // cout << "push error = " << glGetError() << endl; + glDisable( GL_DEPTH_TEST ); glDisable( GL_FOG ); @@ -78,9 +84,10 @@ static int sgSkyDomePreDraw( ssgEntity *e ) { static int sgSkyDomePostDraw( ssgEntity *e ) { /* cout << endl << "Dome Post Draw" << endl << "----------------" << endl << endl; */ - glEnable( GL_DEPTH_TEST ); - glEnable( GL_FOG ); + glPopAttrib(); + // cout << "pop error = " << glGetError() << endl; + return true; } @@ -349,11 +356,11 @@ bool SGSkyDome::repaint( sgVec4 sky_color, sgVec4 fog_color, double sun_angle, lower_color[i][j] = fog_color[j] + outer_amt[j]; if ( upper_color[i][j] > 1.0 ) { upper_color[i][j] = 1.0; } - if ( upper_color[i][j] < 0.1 ) { upper_color[i][j] = 0.1; } + if ( upper_color[i][j] < 0.0 ) { upper_color[i][j] = 0.0; } if ( middle_color[i][j] > 1.0 ) { middle_color[i][j] = 1.0; } - if ( middle_color[i][j] < 0.1 ) { middle_color[i][j] = 0.1; } + if ( middle_color[i][j] < 0.0 ) { middle_color[i][j] = 0.0; } if ( lower_color[i][j] > 1.0 ) { lower_color[i][j] = 1.0; } - if ( lower_color[i][j] < 0.1 ) { lower_color[i][j] = 0.1; } + if ( lower_color[i][j] < 0.0 ) { lower_color[i][j] = 0.0; } } upper_color[i][3] = middle_color[i][3] = lower_color[i][3] = 1.0; @@ -390,11 +397,11 @@ bool SGSkyDome::repaint( sgVec4 sky_color, sgVec4 fog_color, double sun_angle, lower_color[i][j] = fog_color[j] + outer_amt[j]; if ( upper_color[i][j] > 1.0 ) { upper_color[i][j] = 1.0; } - if ( upper_color[i][j] < 0.1 ) { upper_color[i][j] = 0.1; } + if ( upper_color[i][j] < 0.0 ) { upper_color[i][j] = 0.0; } if ( middle_color[i][j] > 1.0 ) { middle_color[i][j] = 1.0; } - if ( middle_color[i][j] < 0.1 ) { middle_color[i][j] = 0.1; } + if ( middle_color[i][j] < 0.0 ) { middle_color[i][j] = 0.0; } if ( lower_color[i][j] > 1.0 ) { lower_color[i][j] = 1.0; } - if ( lower_color[i][j] < 0.1 ) { lower_color[i][j] = 0.1; } + if ( lower_color[i][j] < 0.0 ) { lower_color[i][j] = 0.0; } } upper_color[i][3] = middle_color[i][3] = lower_color[i][3] = 1.0; @@ -412,8 +419,8 @@ bool SGSkyDome::repaint( sgVec4 sky_color, sgVec4 fog_color, double sun_angle, printf("lower_color[%d] = %.2f %.2f %.2f %.2f\n", i, lower_color[i][0], lower_color[i][1], lower_color[i][2], lower_color[i][3]); - */ - } + */ + } for ( i = 0; i < 12; i++ ) { sgCopyVec4( bottom_color[i], fog_color );