1
0
Fork 0

Clear to adjusted fog color (for sunrise/sunset effects)

Make call to fog sunrise/sunset adjustment method.
Add a stdc++ library bug work around to fg_init.cxx
This commit is contained in:
curt 1998-07-22 21:40:43 +00:00
parent 3fb75af08f
commit 0347fcc173
2 changed files with 37 additions and 6 deletions

View file

@ -45,7 +45,7 @@
#include <sys/stat.h> /* for stat() */ #include <sys/stat.h> /* for stat() */
#ifdef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H
# include <unistd.h> /* for fork() && stat() */ # include <unistd.h> /* for stat() */
#endif #endif
#include <Include/fg_constants.h> // for VERSION #include <Include/fg_constants.h> // for VERSION
@ -298,7 +298,7 @@ static void fgRenderFrame( void ) {
fgTIME *t; fgTIME *t;
fgVIEW *v; fgVIEW *v;
double angle; double angle;
GLfloat black[4] = { 0.0, 0.0, 0.0, 1.0 }; // GLfloat black[4] = { 0.0, 0.0, 0.0, 1.0 };
GLfloat white[4] = { 1.0, 1.0, 1.0, 1.0 }; GLfloat white[4] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat terrain_color[4] = { 0.54, 0.44, 0.29, 1.0 }; GLfloat terrain_color[4] = { 0.54, 0.44, 0.29, 1.0 };
GLbitfield clear_mask; GLbitfield clear_mask;
@ -335,8 +335,8 @@ static void fgRenderFrame( void ) {
if ( current_options.get_skyblend() ) { if ( current_options.get_skyblend() ) {
if ( current_options.get_textures() ) { if ( current_options.get_textures() ) {
// glClearColor(black[0], black[1], black[2], black[3]); // glClearColor(black[0], black[1], black[2], black[3]);
glClearColor(l->fog_color[0], l->fog_color[1], glClearColor(l->adj_fog_color[0], l->adj_fog_color[1],
l->fog_color[2], l->fog_color[3]); l->adj_fog_color[2], l->adj_fog_color[3]);
clear_mask |= GL_COLOR_BUFFER_BIT; clear_mask |= GL_COLOR_BUFFER_BIT;
} }
} else { } else {
@ -401,7 +401,7 @@ static void fgRenderFrame( void ) {
xglEnable( GL_DEPTH_TEST ); xglEnable( GL_DEPTH_TEST );
if ( current_options.get_fog() > 0 ) { if ( current_options.get_fog() > 0 ) {
xglEnable( GL_FOG ); xglEnable( GL_FOG );
xglFogfv (GL_FOG_COLOR, l->fog_color); xglFogfv (GL_FOG_COLOR, l->adj_fog_color);
} }
// set lighting parameters // set lighting parameters
xglLightfv(GL_LIGHT0, GL_AMBIENT, l->scene_ambient ); xglLightfv(GL_LIGHT0, GL_AMBIENT, l->scene_ambient );
@ -449,11 +449,13 @@ static void fgRenderFrame( void ) {
// Update internal time dependent calculations (i.e. flight model) // Update internal time dependent calculations (i.e. flight model)
void fgUpdateTimeDepCalcs(int multi_loop) { void fgUpdateTimeDepCalcs(int multi_loop) {
fgFLIGHT *f; fgFLIGHT *f;
fgLIGHT *l;
fgTIME *t; fgTIME *t;
fgVIEW *v; fgVIEW *v;
int i; int i;
f = current_aircraft.flight; f = current_aircraft.flight;
l = &cur_light_params;
t = &cur_time_params; t = &cur_time_params;
v = &current_view; v = &current_view;
@ -492,6 +494,18 @@ void fgUpdateTimeDepCalcs(int multi_loop) {
} }
} }
} }
double tmp = -(l->sun_rotation + FG_PI) - (FG_Psi - v->view_offset);
while ( tmp < 0.0 ) {
tmp += FG_2PI;
}
while ( tmp > FG_2PI ) {
tmp -= FG_2PI;
}
printf("Psi = %.2f, viewoffset = %.2f sunrot = %.2f rottosun = %.2f\n",
FG_Psi * RAD_TO_DEG, v->view_offset * RAD_TO_DEG,
-(l->sun_rotation+FG_PI) * RAD_TO_DEG, tmp * RAD_TO_DEG);
l->UpdateAdjFog();
} }
@ -672,7 +686,7 @@ static void fgIdleFunction ( void ) {
lockfile, mp3file, lockfile ); lockfile, mp3file, lockfile );
fgPrintf( FG_GENERAL, FG_INFO, fgPrintf( FG_GENERAL, FG_INFO,
"Starting intro music: %s\n", mp3file); "Starting intro music: %s\n", mp3file);
system(command); system ( command );
} }
#endif #endif
@ -910,6 +924,11 @@ int main( int argc, char **argv ) {
// $Log$ // $Log$
// Revision 1.38 1998/07/22 21:40:43 curt
// Clear to adjusted fog color (for sunrise/sunset effects)
// Make call to fog sunrise/sunset adjustment method.
// Add a stdc++ library bug work around to fg_init.cxx
//
// Revision 1.37 1998/07/20 12:49:44 curt // Revision 1.37 1998/07/20 12:49:44 curt
// Tweaked color buffer clearing defaults. We clear the color buffer if we // Tweaked color buffer clearing defaults. We clear the color buffer if we
// are doing textures. Assumptions: If we are doing textures we have hardware // are doing textures. Assumptions: If we are doing textures we have hardware

View file

@ -30,6 +30,13 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
// work around a stdc++ lib bug in some versions of linux, but doesn't
// seem to hurt to have this here for all versions of Linux.
#ifdef linux
# define _G_NO_EXTERN_TEMPLATES
#endif
#include <string.h> #include <string.h>
#include <Include/fg_constants.h> #include <Include/fg_constants.h>
@ -394,6 +401,11 @@ int fgInitSubsystems( void ) {
// $Log$ // $Log$
// Revision 1.26 1998/07/22 21:40:44 curt
// Clear to adjusted fog color (for sunrise/sunset effects)
// Make call to fog sunrise/sunset adjustment method.
// Add a stdc++ library bug work around to fg_init.cxx
//
// Revision 1.25 1998/07/13 21:01:38 curt // Revision 1.25 1998/07/13 21:01:38 curt
// Wrote access functions for current fgOPTIONS. // Wrote access functions for current fgOPTIONS.
// //