X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fsky%2Fdome.cxx;h=98961fac99c0792cc457703e54674bd9c18223bd;hb=f1ab6e2533a1bf07439b3d5918430f496158d8f3;hp=0032bd8fa3ca1f33c840ebaa4e78721b6bd94d5a;hpb=82459a2802a939434f9fc5b88d2b2aea58f0043d;p=simgear.git diff --git a/simgear/sky/dome.cxx b/simgear/sky/dome.cxx index 0032bd8f..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 ); @@ -507,9 +514,9 @@ bool SGSkyDome::reposition( sgVec3 p, double lon, double lat, double spin ) { // Rotate to proper orientation // printf(" lon = %.2f lat = %.2f\n", - // FG_Longitude * SGD_RADIANS_TO_DEGREES, - // FG_Latitude * SGD_RADIANS_TO_DEGREES); - // xglRotatef( f->get_Longitude() * SGD_RADIANS_TO_DEGREES, 0.0, 0.0, 1.0 ); + // lon * SGD_RADIANS_TO_DEGREES, + // lat * SGD_RADIANS_TO_DEGREES); + // xglRotatef( lon * SGD_RADIANS_TO_DEGREES, 0.0, 0.0, 1.0 ); sgSetVec3( axis, 0.0, 0.0, 1.0 ); sgMakeRotMat4( LON, lon * SGD_RADIANS_TO_DEGREES, axis );