double agl;
if ( current_aircraft.fdm_state ) {
agl = current_aircraft.fdm_state->get_Altitude() * SG_FEET_TO_METER
- - scenery.cur_elev;
+ - scenery.get_cur_elev();
} else {
agl = 0.0;
}
double agl1;
if ( current_aircraft.fdm_state ) {
agl1 = current_aircraft.fdm_state->get_Altitude() * SG_FEET_TO_METER
- - scenery.cur_elev;
+ - scenery.get_cur_elev();
} else {
agl1 = 0.0;
}
}
+// Set up lights rendering call backs
+static int fgLightsPredraw( ssgEntity *e ) {
+#if 0
+#ifdef GL_EXT_point_parameters
+ if (glutExtensionSupported("GL_EXT_point_parameters")) {
+ static float quadratic[3] = {1.0, 0.01, 0.0001};
+ glPointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT, quadratic);
+ glPointParameterfEXT(GL_POINT_SIZE_MIN_EXT, 1.0);
+ glPointSize(4.0);
+ }
+#endif
+#endif
+ return true;
+}
+
+static int fgLightsPostdraw( ssgEntity *e ) {
+#if 0
+#ifdef GL_EXT_point_parameters
+ if (glutExtensionSupported("GL_EXT_point_parameters")) {
+ static float default_attenuation[3] = {1.0, 0.0, 0.0};
+ glPointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT,
+ default_attenuation);
+ glPointSize(1.0);
+ }
+#endif
+#endif
+ return true;
+}
+
+
ssgLeaf* FGTileEntry::gen_lights( ssgVertexArray *lights, int inc, float bright ) {
// generate a repeatable random seed
float *p1 = lights->get( 0 );
// assign state
FGNewMat *newmat = material_lib.find( "LIGHTS" );
leaf->setState( newmat->get_state() );
+ leaf->setCallback( SSG_CALLBACK_PREDRAW, fgLightsPredraw );
+ leaf->setCallback( SSG_CALLBACK_POSTDRAW, fgLightsPostdraw );
return leaf;
}
terra_transform->addKid( terra_range );
// calculate initial tile offset
- SetOffset( scenery.center );
+ SetOffset( scenery.get_center() );
sgCoord sgcoord;
sgSetCoord( &sgcoord,
offset.x(), offset.y(), offset.z(),