current_view.set_winHeight( height );
current_view.force_update_fov_math();
+ glViewport ( 0, 0, width, height );
+
if ( idle_state == 1000 ) {
// yes we've finished all our initializations and are running
// the main loop, so this will now work without seg faulting
} else if ( arg == "--enable-wireframe" ) {
wireframe = true;
} else if ( arg.find( "--geometry=" ) != string::npos ) {
+ bool geometry_ok = true;
string geometry = arg.substr( 11 );
- if ( geometry == "640x480" ) {
+ string::size_type i = geometry.find('x');
+
+ if (i != string::npos) {
+ xsize = atoi(geometry.substr(0, i));
+ ysize = atoi(geometry.substr(i+1));
+ // cout << "Geometry is " << xsize << 'x' << ysize << '\n';
+ } else {
+ geometry_ok = false;
+ }
+
+ if ( xsize <= 0 || ysize <= 0 ) {
xsize = 640;
ysize = 480;
- } else if ( geometry == "800x600" ) {
- xsize = 800;
- ysize = 600;
- } else if ( geometry == "1024x768" ) {
- xsize = 1024;
- ysize = 768;
- } else {
- FG_LOG( FG_GENERAL, FG_ALERT, "Unknown geometry: " << geometry );
- exit(-1);
- }
+ geometry_ok = false;
+ }
+
+ if ( !geometry_ok ) {
+ FG_LOG( FG_GENERAL, FG_ALERT, "Unknown geometry: " << geometry );
+ FG_LOG( FG_GENERAL, FG_ALERT,
+ "Setting geometry to " << xsize << 'x' << ysize << '\n');
+ }
} else if ( arg == "--units-feet" ) {
units = FG_UNITS_FEET;
} else if ( arg == "--units-meters" ) {