#include <Time/light.hxx>
#include <Time/light.hxx>
#include <Aircraft/aircraft.hxx>
+// #include <Aircraft/replay.hxx>
#include <Cockpit/panel.hxx>
#include <Cockpit/cockpit.hxx>
#include <Cockpit/hud.hxx>
#include <Scenery/scenery.hxx>
#include <Scenery/tilemgr.hxx>
#include <ATC/ATCdisplay.hxx>
-#include <Replay/replay.hxx>
#include <GUI/new_gui.hxx>
#include "splash.hxx"
SGAnimation::set_sim_time_sec( 0.0 );
return;
}
+// return;
+ // TODO:TEST only, don't commit that !!
+// sgFXperFrameInit();
+
+ extern void sgShaderFrameInit(double delta_time_sec);
+ sgShaderFrameInit(delta_time_sec);
bool draw_otw = fgGetBool("/sim/rendering/draw-otw");
bool skyblend = fgGetBool("/sim/rendering/skyblend");
glEnable( GL_FOG );
glFogi( GL_FOG_MODE, GL_EXP2 );
glFogfv( GL_FOG_COLOR, l->adj_fog_color() );
- }
+ } else
+ glDisable( GL_FOG );
// set sun/lighting parameters
ssgGetLight( 0 ) -> setPosition( l->sun_vec() );
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ) ;
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ) ;
- double agl =
- current_aircraft.fdm_state->get_Altitude() * SG_FEET_TO_METER
- - cur_fdm_state->get_Runway_altitude_m();
+ double agl = current__view->getAltitudeASL_ft()*SG_FEET_TO_METER
+ - current__view->getSGLocation()->get_cur_elev_m();
if ( agl > 10.0 ) {
scene_nearplane = 10.0f;
fgHackFrustum();
}
+bool FGRenderer::getPickInfo( sgdVec3 pt, sgdVec3 dir, unsigned x, unsigned y )
+{
+ // Get the matrices involved in the transform from global to screen
+ // coordinates.
+ sgMat4 pm;
+ ssgGetProjectionMatrix(pm);
+ sgMat4 mv;
+ ssgGetModelviewMatrix(mv);
+
+ // Compose ...
+ sgMat4 m;
+ sgMultMat4(m, pm, mv);
+ // ... and invert
+ sgInvertMat4(m);
+
+ // Get the width and height of the display to be able to normalize the
+ // mouse coordinate
+ float width = fgGetInt("/sim/startup/xsize");
+ float height = fgGetInt("/sim/startup/ysize");
+
+ // Compute some coordinates of in the line from the eyepoint to the
+ // mouse click coodinates.
+ // First build the normalized projection coordinates
+ sgVec4 normPt;
+ sgSetVec4(normPt, (2*x - width)/width, -(2*y - height)/height, 1, 1);
+ // Transform them into the real world
+ sgVec4 worldPt;
+ sgXformPnt4(worldPt, normPt, m);
+ if (worldPt[3] == 0)
+ return false;
+ sgScaleVec3(worldPt, 1/worldPt[3]);
+
+ // Now build a direction from the point
+ FGViewer* view = globals->get_current_view();
+ sgVec4 fDir;
+ sgSubVec3(fDir, worldPt, view->get_view_pos());
+ sgdSetVec3(dir, fDir);
+ sgdNormalizeVec3(dir);
+
+ // Copy the start point
+ sgdCopyVec3(pt, view->get_absolute_view_pos());
+
+ return true;
+}
// end of renderer.cxx
+