]> git.mxchange.org Git - flightgear.git/commitdiff
HUD updates/cleanups from Norman Vine.
authorcurt <curt>
Sat, 13 May 2000 00:02:43 +0000 (00:02 +0000)
committercurt <curt>
Sat, 13 May 2000 00:02:43 +0000 (00:02 +0000)
16 files changed:
src/Cockpit/cockpit.cxx
src/Cockpit/hud.cxx
src/Cockpit/hud.hxx
src/Cockpit/hud_card.cxx
src/Cockpit/hud_dnst.cxx
src/Cockpit/hud_guag.cxx
src/Cockpit/hud_inst.cxx
src/Cockpit/hud_labl.cxx
src/Cockpit/hud_ladr.cxx
src/Cockpit/hud_lat.cxx
src/Cockpit/hud_lon.cxx
src/Cockpit/hud_scal.cxx
src/Cockpit/hud_tbi.cxx
src/Main/main.cxx
src/Main/options.cxx
src/Main/options.hxx

index 4b381f3714ea671eda5cb3fd781adf0eee9d6abd..674b6744a084725ac09a33e5c654c07bad294597 100644 (file)
 // cockpit/panel/hud system
 
 static pCockpit ac_cockpit;
-fntRenderer *HUDtext = 0;
-float  HUD_TextSize = 0;
-int HUD_style = 0;
-
-float HUD_matrix[16];
 // The following routines obtain information concerntin the aircraft's
 // current state and return it to calling instrument display routines.
 // They should eventually be member functions of the aircraft.
@@ -466,28 +461,20 @@ bool fgCockpitInit( fgAIRCRAFT *cur_aircraft )
         "  Code " << ac_cockpit->code() << " Status " 
         << ac_cockpit->status() );
 
-//  HUD_TextSize = (current_options.get_xsize() > 1000) ? 10 : 8;
-    HUD_TextSize = 10;
-    HUDtext = new fntRenderer();
-    HUDtext -> setFont      ( guiFntHandle ) ;
-    HUDtext -> setPointSize ( HUD_TextSize ) ;
-    HUD_TextList.setFont( HUDtext );
-
-    return true;
+       return true;
 }
 
-
 void fgCockpitUpdate( void ) {
 
-    int iwidth   = current_view.get_winWidth();
-    int iheight  = current_view.get_winHeight();
-    float width  = iwidth;
-    float height = iheight;
-    
     FG_LOG( FG_COCKPIT, FG_DEBUG,
         "Cockpit: code " << ac_cockpit->code() << " status " 
         << ac_cockpit->status() );
 
+       int iwidth   = current_view.get_winWidth();
+       int iheight  = current_view.get_winHeight();
+       float width  = iwidth;
+       float height = iheight;
+
     if ( current_options.get_hud_status() ) {
         // This will check the global hud linked list pointer.
         // If these is anything to draw it will.
index f13b5f4590dd4c3e51aafb8d054ab554a77abd27..803a0905d24b4dd0c4129453e76f3b95eab79f1c 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 
-#ifdef HAVE_VALUES_H
-#  include <values.h>  // for MAXINT
-#endif
-
 #include <simgear/constants.h>
 #include <simgear/debug/logstream.hxx>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
+//#include <simgear/math/fg_random.h>
+//#include <simgear/math/polar3d.hxx>
 
 #include <Aircraft/aircraft.hxx>
 #include <Autopilot/newauto.hxx>
@@ -55,7 +51,7 @@
 #include <NetworkOLK/network.h>
 #endif
 #include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
+//#include <Time/fg_timer.hxx>
 
 #if defined ( __sun__ ) || defined ( __sgi )
 extern "C" {
@@ -78,7 +74,13 @@ fgTextList         HUD_TextList;
 fgLineList         HUD_LineList;
 fgLineList         HUD_StippleLineList;
 
-float hud_trans_alpha = 0.5f;
+fntRenderer *HUDtext = 0;
+float  HUD_TextSize = 0;
+int HUD_style = 0;
+
+float HUD_matrix[16];
+static float hud_trans_alpha = 0.67f;
+
 void fgHUDalphaInit( void );
 
 class locRECT {
@@ -99,6 +101,7 @@ locRECT :: locRECT( UINT left, UINT top, UINT right, UINT bottom)
 }
 // #define DEBUG
 
+#ifdef OLD_CODE
 void drawOneLine( UINT x1, UINT y1, UINT x2, UINT y2)
 {
   glBegin(GL_LINES);
@@ -125,7 +128,6 @@ void textString( int x, int y, char *msg, void *font ){
     if(*msg)
     {
 //      puDrawString (  NULL, msg, x, y );
-        
         glRasterPos2f(x, y);
         while (*msg) {
             glutBitmapCharacter(font, *msg);
@@ -171,6 +173,7 @@ int getStringWidth ( char *str )
     }
     return 0 ;
 }
+#endif // OLD_CODE
 
 //========================= End of Class Implementations===================
 // fgHUDInit
@@ -188,7 +191,6 @@ int fgHUDInit( fgAIRCRAFT * /* current_aircraft */ )
 {
   instr_item *HIptr;
 //  int index;
-  int font_size;
 
 //  int off = 50;
   int min_x = 25; //off/2;
@@ -204,7 +206,8 @@ int fgHUDInit( fgAIRCRAFT * /* current_aircraft */ )
   int compass_w = 200;
   int gap = 10;
 
-  font_size = (current_options.get_xsize() > 1000) ? LARGE : SMALL;
+//  int font_size = current_options.get_xsize() / 60;
+  int font_size = (current_options.get_xsize() > 1000) ? LARGE : SMALL;
   
   HUD_style = 1;
 
@@ -658,6 +661,7 @@ int fgHUDInit( fgAIRCRAFT * /* current_aircraft */ )
 //  while( HIptr );
 
   fgHUDalphaInit();
+  fgHUDReshape();
    return 0;  // For now. Later we may use this for an error code.
 
 }
@@ -666,7 +670,6 @@ int fgHUDInit2( fgAIRCRAFT * /* current_aircraft */ )
 {
 //    instr_item *HIptr;
 //    int index;
-    int font_size;
 
     int off = 50;
 //  int min_x = off;
@@ -682,7 +685,8 @@ int fgHUDInit2( fgAIRCRAFT * /* current_aircraft */ )
     int compass_w = 200;
 //  int gap = 10;
 
-    font_size = (current_options.get_xsize() > 1000) ? LARGE : SMALL;
+//     int font_size = current_options.get_xsize() / 60;
+    int font_size = (current_options.get_xsize() > 1000) ? LARGE : SMALL;
 
     HUD_style = 2;
 
@@ -1029,15 +1033,11 @@ int brightness        = pHUDInstr->get_brightness();
 #define fgAP_CLAMP(val,min,max) ( (val) = (val) > (max) ? (max) : (val) < (min) ? (min) : (val) )
 
 static puDialogBox *HUDalphaDialog;
-static puFrame     *HUDalphaFrame;
-static puText      *HUDalphaDialogMessage;
-static puText      *HUDalphaTitle;
 static puText      *HUDalphaText;
-static puOneShot   *HUDalphaOkButton;
 static puSlider    *HUDalphaHS0;
-static puFont       HUDalphaLegendFont;
-static puFont       HUDalphaLabelFont;
-static char         SliderText[1][ 8 ];
+//static puText      *HUDtextText;
+//static puSlider    *HUDalphaHS1;
+static char         SliderText[2][ 8 ];
 
 static void alpha_adj( puObject *hs ) {
        float val ;
@@ -1051,6 +1051,7 @@ static void alpha_adj( puObject *hs ) {
 }
 
 void fgHUDalphaAdjust( puObject * ) {
+       current_options.set_anti_alias_hud(1);
        FG_PUSH_PUI_DIALOG( HUDalphaDialog );
 }
 
@@ -1059,41 +1060,51 @@ static void goAwayHUDalphaAdjust (puObject *)
        FG_POP_PUI_DIALOG( HUDalphaDialog );
 }
 
+static void cancelHUDalphaAdjust (puObject *)
+{
+       current_options.set_anti_alias_hud(0);
+       FG_POP_PUI_DIALOG( HUDalphaDialog );
+}
+
 // Done once at system initialization
 void fgHUDalphaInit( void ) {
 
-       //      printf("fgAPAdjustInit\n");
+       //      printf("fgHUDalphaInit\n");
 #define HORIZONTAL  FALSE
 
        int DialogX = 40;
        int DialogY = 100;
-       int DialogWidth = 230;
+       int DialogWidth = 240;
 
-       char Label[] =  "HUD Alpha Adjust";
+       char Label[] =  "HUD Adjuster";
        char *s;
 
        int labelX = (DialogWidth / 2) -
                                 (puGetStringWidth( puGetDefaultLabelFont(), Label ) / 2);
-       labelX -= 30;  // KLUDGEY
-
+       
        int nSliders = 1;
        int slider_x = 10;
        int slider_y = 55;
-       int slider_width = 210;
+       int slider_width = 220;
        int slider_title_x = 15;
        int slider_value_x = 160;
        float slider_delta = 0.05f;
 
-       puGetDefaultFonts (  &HUDalphaLegendFont,  &HUDalphaLabelFont );
+       puFont HUDalphaLegendFont;
+       puFont HUDalphaLabelFont;
+       puGetDefaultFonts ( &HUDalphaLegendFont, &HUDalphaLabelFont );
+       
        HUDalphaDialog = new puDialogBox ( DialogX, DialogY ); {
                int horiz_slider_height = puGetStringHeight (HUDalphaLabelFont) +
                                                                  puGetStringDescender (HUDalphaLabelFont) +
                                                                  PUSTR_TGAP + PUSTR_BGAP + 5;
 
+               puFrame *
                HUDalphaFrame = new puFrame ( 0, 0,
                                                                          DialogWidth,
                                                                          85 + nSliders * horiz_slider_height );
-
+               
+               puText *
                HUDalphaDialogMessage = new puText ( labelX,
                                                                                         52 + nSliders
                                                                                         * horiz_slider_height );
@@ -1103,30 +1114,57 @@ void fgHUDalphaInit( void ) {
 
                HUDalphaHS0 = new puSlider ( slider_x, slider_y,
                                                                         slider_width, HORIZONTAL ) ;
-               HUDalphaHS0-> setDelta ( slider_delta ) ;
-               HUDalphaHS0-> setValue ( hud_trans_alpha ) ;
-               HUDalphaHS0-> setCBMode ( PUSLIDER_DELTA ) ;
-               HUDalphaHS0-> setCallback ( alpha_adj ) ;
-
-               sprintf( SliderText[ 0 ], "%05.2f", hud_trans_alpha );
-               HUDalphaTitle = new puText ( slider_title_x, slider_y ) ;
-               HUDalphaTitle-> setDefaultValue ( "MaxAlpha" ) ;
+               HUDalphaHS0->     setDelta ( slider_delta ) ;
+               HUDalphaHS0->     setValue ( hud_trans_alpha ) ;
+               HUDalphaHS0->    setCBMode ( PUSLIDER_DELTA ) ;
+               HUDalphaHS0->  setCallback ( alpha_adj ) ;
+
+               puText *
+               HUDalphaTitle =      new puText ( slider_title_x, slider_y ) ;
+               HUDalphaTitle-> setDefaultValue ( "Alpha" ) ;
                HUDalphaTitle-> getDefaultValue ( &s ) ;
-               HUDalphaTitle-> setLabel ( s ) ;
+               HUDalphaTitle->        setLabel ( s ) ;
+               
                HUDalphaText = new puText ( slider_value_x, slider_y ) ;
+               sprintf( SliderText[ 0 ], "%05.2f", hud_trans_alpha );
                HUDalphaText-> setLabel ( SliderText[ 0 ] ) ;
 
 
-               HUDalphaOkButton = new puOneShot ( 10, 10, 60, 50 );
-               HUDalphaOkButton-> setLegend ( gui_msg_OK );
+               puOneShot *
+               HUDalphaOkButton =     new puOneShot ( 10, 10, 60, 45 );
+               HUDalphaOkButton->         setLegend ( gui_msg_OK );
                HUDalphaOkButton-> makeReturnDefault ( TRUE );
-               HUDalphaOkButton-> setCallback ( goAwayHUDalphaAdjust );
+               HUDalphaOkButton->       setCallback ( goAwayHUDalphaAdjust );
+               
+               puOneShot *
+               HUDalphaNoButton = new puOneShot ( 160, 10, 230, 45 );
+               HUDalphaNoButton->     setLegend ( gui_msg_CANCEL );
+               HUDalphaNoButton->   setCallback ( cancelHUDalphaAdjust );
        }
        FG_FINALIZE_PUI_DIALOG( HUDalphaDialog );
 
 #undef HORIZONTAL
 }
 
+void fgHUDReshape(void) {
+       if ( HUDtext )
+               delete HUDtext;
+
+       HUD_TextSize = current_options.get_xsize() / 60;
+//    HUD_TextSize = 10;
+       HUDtext = new fntRenderer();
+       HUDtext -> setFont      ( guiFntHandle ) ;
+       HUDtext -> setPointSize ( HUD_TextSize ) ;
+       HUD_TextList.setFont( HUDtext );
+}
+
+
+static void set_hud_color(float r, float g, float b) {
+       current_options.get_anti_alias_hud() ?
+                       glColor4f(r,g,b,hud_trans_alpha) :
+                       glColor3f(r,g,b);
+}
+
 // fgUpdateHUD
 //
 // Performs a once around the list of calls to instruments installed in
@@ -1162,65 +1200,59 @@ void fgUpdateHUD( void ) {
   glPushMatrix();
   glLoadIdentity();
 
-  glColor3f(1.0, 1.0, 1.0);
-  glIndexi(7);
-
   glDisable(GL_DEPTH_TEST);
   glDisable(GL_LIGHTING);
 
-  // #define ANTI_ALIAS_HUD
-#ifdef ANTI_ALIAS_HUD
-#define HUD_COLOR(r,g,b)  glColor4f(r,g,b,hud_trans_alpha)
-  glEnable(GL_LINE_SMOOTH);
-  glEnable(GL_BLEND);
-  glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
-  glHint(GL_LINE_SMOOTH_HINT,GL_DONT_CARE);
-  glLineWidth(1.5);
-#else
-#define HUD_COLOR(r,g,b)  glColor3f(r,g,b)
-  glLineWidth(1.0);
-#endif
+  if( current_options.get_anti_alias_hud() ) {
+         glEnable(GL_LINE_SMOOTH);
+//       glEnable(GL_BLEND);
+         glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+         glHint(GL_LINE_SMOOTH_HINT,GL_DONT_CARE);
+         glLineWidth(1.5);
+  } else {
+         glLineWidth(1.0);
+  }
 
   if( day_night_sw == DAY) {
          switch (brightness) {
                  case BRT_LIGHT:
-            HUD_COLOR (0.1f, 0.9f, 0.1f);
+            set_hud_color (0.1f, 0.9f, 0.1f);
             break;
 
           case BRT_MEDIUM:
-            HUD_COLOR (0.1f, 0.7f, 0.0f);
+            set_hud_color (0.1f, 0.7f, 0.0f);
             break;
 
           case BRT_DARK:
-            HUD_COLOR (0.0f, 0.6f, 0.0f);
+            set_hud_color (0.0f, 0.6f, 0.0f);
             break;
 
           case BRT_BLACK:
-            HUD_COLOR( 0.0f, 0.0f, 0.0f);
+            set_hud_color( 0.0f, 0.0f, 0.0f);
             break;
 
           default:
-                   HUD_COLOR (0.1f, 0.9f, 0.1f);
+                   set_hud_color (0.1f, 0.9f, 0.1f);
          }
   }
   else {
          if( day_night_sw == NIGHT) {
                  switch (brightness) {
                          case BRT_LIGHT:
-                HUD_COLOR (0.9f, 0.1f, 0.1f);
+                set_hud_color (0.9f, 0.1f, 0.1f);
                 break;
 
               case BRT_MEDIUM:
-                HUD_COLOR (0.7f, 0.0f, 0.1f);
+                set_hud_color (0.7f, 0.0f, 0.1f);
                 break;
 
                          case BRT_DARK:
                          default:
-                                 HUD_COLOR (0.6f, 0.0f, 0.0f);
+                                 set_hud_color (0.6f, 0.0f, 0.0f);
                  }
          }
          else {     // Just in case default
-                 HUD_COLOR (0.1f, 0.9f, 0.1f);
+                 set_hud_color (0.1f, 0.9f, 0.1f);
          }
   }
 
@@ -1234,8 +1266,6 @@ void fgUpdateHUD( void ) {
                  //  fgPrintf( FG_COCKPIT, FG_DEBUG, "HUD Code %d  Status %d\n",
                  //            hud->code, hud->status );
                  pHUDInstr->draw();
-//           HUD_deque.at(i)->draw(); // Responsible for broken or fixed variants.
-                              // No broken displays honored just now.
          }
   }
 
@@ -1291,12 +1321,11 @@ void fgUpdateHUD( void ) {
 //  HUD_StippleLineList.draw();
 //  glDisable(GL_LINE_STIPPLE);
 
-  
-#ifdef ANTI_ALIAS_HUD
-  glDisable(GL_BLEND);
-  glDisable(GL_LINE_SMOOTH);
-  glLineWidth(1.0);
-#endif
+  if( current_options.get_anti_alias_hud() ) {
+//       glDisable(GL_BLEND);
+         glDisable(GL_LINE_SMOOTH);
+         glLineWidth(1.0);
+  }
 
   glEnable(GL_DEPTH_TEST);
   glEnable(GL_LIGHTING);
index 25f1da7dc4e574a82057cf673cf836af0a993463..eca76161bc4c1e6fe160253d4ee0599f252552b8 100644 (file)
@@ -40,9 +40,9 @@
 #include <stdlib.h>
 #include <string.h>
 
-#ifdef HAVE_VALUES_H
-#  include <values.h>  // for MAXINT
-#endif
+//#ifdef HAVE_VALUES_H
+//#  include <values.h>  // for MAXINT
+//#endif
 
 #include <vector>       // STL vector
 #include <deque>        // STL double ended queue
@@ -190,6 +190,7 @@ extern char *coord_format_lon(float);
 //extern char *coord_format_latlon(float latitude, float longitude);  // cockpit.cxx
 
 extern char *get_formated_gmt_time( void );
+extern void fgHUDReshape(void);
 
 enum  hudinstype{ HUDno_instr,
               HUDscale,
@@ -297,32 +298,28 @@ public:
     ~fgLineList( void ) {}
     void add( fgLineSeg2D seg ) { List.push_back(seg); }
     void erase( void ) { List.erase( List.begin(), List.end() ); }
-    void draw( void ) {
-       vector < fgLineSeg2D > :: iterator curSeg;
-       vector < fgLineSeg2D > :: iterator lastSeg;
-       curSeg  = List.begin();
-       lastSeg = List.end();
-       glBegin(GL_LINES);
-       for ( ; curSeg != lastSeg; curSeg++ ) {
-           curSeg->draw();
+       void draw( void ) {
+               vector < fgLineSeg2D > :: iterator curSeg;
+               vector < fgLineSeg2D > :: iterator lastSeg;
+               curSeg  = List.begin();
+               lastSeg = List.end();
+               glBegin(GL_LINES);
+               for ( ; curSeg != lastSeg; curSeg++ ) {
+                       curSeg->draw();
+               }
+               glEnd();
        }
-       glEnd();
-    }
-
-#if 0
-    void draw( void ) {
+/*    void draw( void ) {
         vector < fgLineSeg2D > :: iterator curSeg;
         vector < fgLineSeg2D > :: iterator lastSeg;
-       curSeg  = List.begin();
+       curSeg  = List.begin();
         lastSeg = List.end();
         glBegin(GL_LINES);
         for ( ; curSeg != lastSeg; curSeg++ ) {
             curSeg->draw();
         }
         glEnd();
-    }
-#endif
-
+    } */
 };
 
 class fgTextList {
index f0761cdcae14ea3d5418dcda30fb5550488ccf25..894aaf3841e041444cd2d04366fc8949fed9ea3e 100644 (file)
@@ -1,21 +1,3 @@
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-
-#include <simgear/constants.h>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
-
-#include <Aircraft/aircraft.hxx>
-#include <GUI/gui.h>
-#include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
 
 #include "hud.hxx"
 
index 0314be094c609823ea5da9dbde7817bbaee68f2c..cf5eacfddb6b942d9e6f6528db32fc73b9d0ef06 100644 (file)
@@ -1,21 +1,3 @@
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <simgear/constants.h>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
-
-#include <Aircraft/aircraft.hxx>
-#include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
 
 #include "hud.hxx"
 
index 7bbf2f15526e3631546d7b0aa0b003156bfa1524..719ab5ce8946d84ebf6f23cc4fa8aba4ea983dd8 100644 (file)
@@ -1,22 +1,3 @@
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <simgear/constants.h>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
-
-#include <Aircraft/aircraft.hxx>
-#include <GUI/gui.h>
-#include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
 
 #include "hud.hxx"
 
@@ -110,11 +91,11 @@ void guage_instr :: draw (void)
     char TextScale[80];
     bool condition;
     int disp_val = 0;
-    float vmin         = min_val();
-    float vmax         = max_val();
-    POINT mid_scr       = get_centroid();
-    float cur_value    = get_value();
-    RECT   scrn_rect    = get_location();
+    float vmin       = min_val();
+    float vmax       = max_val();
+    POINT mid_scr    = get_centroid();
+    float cur_value  = get_value();
+    RECT  scrn_rect  = get_location();
     UINT options     = get_options();
 
     width = scrn_rect.left + scrn_rect.right;
index 25b0f03801fcf35a33be8fd2247bbace73c7de57..ed4a50b207aaf5f83713e1ecc1123e81ae087fc9 100644 (file)
@@ -1,23 +1,3 @@
-// Abstract Base Class instr_item
-//
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <simgear/constants.h>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
-
-#include <Aircraft/aircraft.hxx>
-#include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
 
 #include "hud.hxx"
 
index 09d18b269c6e53b0d68571add88e7a916787846b..d0512625acf129272d31fb2fddaa4401f4a56f7e 100644 (file)
@@ -1,22 +1,3 @@
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <simgear/constants.h>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
-
-#include <Aircraft/aircraft.hxx>
-#include <GUI/gui.h>
-#include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
 
 #include "hud.hxx"
 
index e4ae0c115d46da9bc74e0866223c63410facfd36..08cf1980e7e7c8748a9947d5b18ae7d8b4240a13 100644 (file)
@@ -1,22 +1,3 @@
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <simgear/constants.h>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
-
-#include <Aircraft/aircraft.hxx>
-#include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
-#include <GUI/gui.h>
 
 #include "hud.hxx"
 
index ea9e61f71d5cfa2dcd5540e5466bf07494f5501a..bd53eb2544ce9f23ade7292f797dd93130a83e81 100644 (file)
@@ -1,22 +1,3 @@
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <simgear/constants.h>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
-
-#include <Aircraft/aircraft.hxx>
-#include <GUI/gui.h>
-#include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
 
 #include "hud.hxx"
 
@@ -126,14 +107,16 @@ draw( void )       // Required method in base class
   int posincr;
   int lenstr;
   RECT  scrn_rect = get_location();
-  float lat = get_value();
+//  float lat = get_value();
   
   if( data_available() ) {
-     sprintf( label_buffer, format_buffer, coord_format_lat(lat) );
+//       sprintf( label_buffer, format_buffer, coord_format_lat(lat) );
+         sprintf( label_buffer, format_buffer,
+                          coord_format_lat( get_value()) );
     }
   else {
      sprintf( label_buffer, format_buffer );
-    }
+  }
     
 #ifdef DEBUGHUD
   fgPrintf( FG_COCKPIT, FG_DEBUG,  format_buffer );
@@ -142,14 +125,13 @@ draw( void )       // Required method in base class
   fgPrintf( FG_COCKPIT, FG_DEBUG, "\n" );
 #endif
 
-       lenstr = getStringWidth(label_buffer);
+  lenstr = getStringWidth(label_buffer);
                                                
   if( justify == RIGHT_JUST ) {
          posincr = scrn_rect.right - lenstr;
   }else if( justify == CENTER_JUST ) {
-         posincr = get_span() - (lenstr/2); //  -lenstr*4;
-  }  else {
-      //  justify == LEFT_JUST
+         posincr = get_span() - (lenstr/2);
+  }  else {  //  justify == LEFT_JUST
       posincr = 0;  // 0;
   }
   
index 8cdb8363e75309edf1494e967e7e0afd76962c0b..4eb5a51711a1a4d99ef62ee1cd309513da40a9a0 100644 (file)
@@ -1,22 +1,3 @@
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <simgear/constants.h>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
-
-#include <Aircraft/aircraft.hxx>
-#include <GUI/gui.h>
-#include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
 
 #include "hud.hxx"
 
@@ -151,10 +132,10 @@ draw( void )       // Required method in base class
   if( justify == RIGHT_JUST ) {
          posincr = scrn_rect.right - lenstr;
   }else if( justify == CENTER_JUST ) {
-         posincr = get_span() - (lenstr/2); //  -lenstr*4;
+         posincr = get_span() - (lenstr/2);
   }  else {
       //  justify == LEFT_JUST
-      posincr = 0;  // 0;
+      posincr = 0;
   }
   
   if( fontSize == SMALL ) {
index 6dcb1d30b8d5387722778a5c85dd7c895affa5c1..e35eb434600e53075cbd52c18821456d63b12a0a 100644 (file)
@@ -1,21 +1,3 @@
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <simgear/constants.h>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
-
-#include <Aircraft/aircraft.hxx>
-#include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
 
 #include "hud.hxx"
 
index bd8e0d9b7f52cca7ea8a8ac01254913005992e57..25968b56335ef894d2d1bcf3fcdd0e8923b26dfb 100644 (file)
@@ -1,21 +1,3 @@
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <simgear/constants.h>
-#include <simgear/math/fg_random.h>
-#include <simgear/math/polar3d.hxx>
-
-#include <Aircraft/aircraft.hxx>
-#include <Scenery/scenery.hxx>
-#include <Time/fg_timer.hxx>
 
 #include "hud.hxx"
 
index 68535fc6dbebda37d415f8a9094726db0b38b5a6..9446c7d47c6868129068004c5613227c6acb4e9b 100644 (file)
@@ -1146,8 +1146,8 @@ void fgReshape( int width, int height ) {
     } else {
        current_view.set_win_ratio( (GLfloat) width / 
                                    ((GLfloat) (height)*0.4232) );
-       glViewport(0, (GLint)((height)*0.5768), (GLint)(width), 
-                   (GLint)((height)*0.4232) );
+       glViewport(0, (GLint)((height)*0.5768),
+                  (GLint)(width), (GLint)((height)*0.4232) );
     }
 
     current_view.set_winWidth( width );
@@ -1155,14 +1155,16 @@ void fgReshape( int width, int height ) {
     current_view.force_update_fov_math();
 
     // set these fov to be the same as in fgRenderFrame()
-    float x_fov = current_options.get_fov();
-    float y_fov = x_fov * 1.0 / current_view.get_win_ratio();
-    ssgSetFOV( x_fov, y_fov );
+    // float x_fov = current_options.get_fov();
+    // float y_fov = x_fov * 1.0 / current_view.get_win_ratio();
+    // ssgSetFOV( x_fov, y_fov );
 
-    glViewport ( 0, 0, width, height );
+    // glViewport ( 0, 0, width, height );
     float fov = current_options.get_fov();
     ssgSetFOV(fov * current_view.get_win_ratio(), fov);
 
+    fgHUDReshape();
+
     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
@@ -1199,9 +1201,10 @@ int fgGlutInit( int *argc, char **argv ) {
     } else {
        // Open the cool new 'game mode' window
        char game_mode_str[256];
-       sprintf( game_mode_str, "width=%d height=%d bpp=32",
+       sprintf( game_mode_str, "width=%d height=%d bpp=%d",
                 current_options.get_xsize(),
-                current_options.get_ysize() );
+                current_options.get_ysize(),
+                current_options.get_bpp());
 
        FG_LOG( FG_GENERAL, FG_INFO, 
                "game mode params = " << game_mode_str );
index 3f7d244bdea2a8e6876aa2a5bf277905bb10f1e7..9e53c0f419aa8417fc6c2535e3bbd579c339ebeb 100644 (file)
@@ -162,6 +162,7 @@ fgOPTIONS::fgOPTIONS() :
     hud_status(1),
     panel_status(0),
     sound(1),
+    anti_alias_hud(0),
 
     // Flight Model options
     flight_model( FGInterface::FG_LARCSIM ),
@@ -181,6 +182,7 @@ fgOPTIONS::fgOPTIONS() :
     wireframe(0),
     xsize(640),
     ysize(480),
+    bpp(16),
     view_mode(FG_VIEW_PILOT),
 
     // Scenery options
@@ -250,7 +252,7 @@ fgOPTIONS::toggle_panel() {
     }
     // fgReshape( xsize, ysize);
     fgReshape( current_view.get_winWidth(), current_view.get_winHeight() );
-    
+
     if( !toggle_pause )
         t->togglePauseMode();
 }
@@ -601,6 +603,10 @@ int fgOPTIONS::parse_option( const string& arg ) {
        pause = false;  
     } else if ( arg == "--enable-pause" ) {
        pause = true;   
+    } else if ( arg == "--disable-anti-alias-hud" ) {
+       anti_alias_hud = false; 
+    } else if ( arg == "--enable-anti-alias-hud" ) {
+       anti_alias_hud = true;  
     } else if ( arg.find( "--control=") != string::npos ) {
        parse_control( arg.substr(10) );
     } else if ( arg == "--disable-auto-coordination" ) {
@@ -734,6 +740,15 @@ int fgOPTIONS::parse_option( const string& arg ) {
            FG_LOG( FG_GENERAL, FG_ALERT,
                    "Setting geometry to " << xsize << 'x' << ysize << '\n');
        }
+    } else if ( arg.find( "--bpp=" ) != string::npos ) {
+       string bits_per_pix = arg.substr( 6 );
+       if ( bits_per_pix == "16" ) {
+           bpp = 16;
+       } else if ( bits_per_pix == "24" ) {
+           bpp = 24;
+       } else if ( bits_per_pix == "32" ) {
+           bpp = 32;
+       }
     } else if ( arg == "--units-feet" ) {
        units = FG_UNITS_FEET;  
     } else if ( arg == "--units-meters" ) {
@@ -888,6 +903,8 @@ void fgOPTIONS::usage ( void ) {
     cout << "\t--enable-panel:  enable instrumetn panel" << endl;
     cout << "\t--disable-sound:  disable sound effects" << endl;
     cout << "\t--enable-sound:  enable sound effects" << endl;
+    cout << "\t--disable-anti-alias-hud:  disable anti aliased hud" << endl;
+    cout << "\t--enable-anti-alias-hud:  enable anti aliased hud" << endl;
     cout << endl;
  
     cout << "Flight Model:" << endl;
index e487c38278afda44e26245328bd693409f26c151..5db0b1aae9a60ba58ef02d41e4d49080a35da9fc 100644 (file)
@@ -153,6 +153,7 @@ private:
     bool hud_status;    // HUD on/off
     bool panel_status;  // Panel on/off
     bool sound;         // play sound effects
+    bool anti_alias_hud;
 
     // Flight Model options
     int flight_model;   // Core flight model code:  jsb, larcsim, magic, etc.
@@ -171,6 +172,7 @@ private:
     bool textures;      // Textures enabled/disabled
     bool wireframe;     // Wireframe mode enabled/disabled
     int xsize, ysize;   // window size derived from geometry string
+    int bpp;            // bits per pixel
     fgViewMode view_mode; // view mode
 
     // Scenery options
@@ -231,6 +233,7 @@ public:
     inline bool get_intro_music() const { return intro_music; }
     inline int get_mouse_pointer() const { return mouse_pointer; }
     inline bool get_pause() const { return pause; }
+    inline bool get_anti_alias_hud() const { return anti_alias_hud; }
     inline fgControlMode get_control_mode() const { return control_mode; }
     inline void set_control_mode( fgControlMode mode ) { control_mode = mode; }
     inline fgAutoCoordMode get_auto_coordination() const { 
@@ -259,6 +262,7 @@ public:
     inline bool get_wireframe() const { return wireframe; }
     inline int get_xsize() const { return xsize; }
     inline int get_ysize() const { return ysize; }
+    inline int get_bpp() const { return bpp; }
     inline fgViewMode get_view_mode() const { return view_mode; }
     inline int get_tile_radius() const { return tile_radius; }
     inline int get_tile_diameter() const { return tile_diameter; }
@@ -293,6 +297,7 @@ public:
     inline void set_intro_music (bool value) { intro_music = value; }
     inline void set_mouse_pointer (int value) { mouse_pointer = value; }
     inline void set_pause (bool value) { pause = value; }
+    inline void set_anti_alias_hud (bool value) { anti_alias_hud = value; }
     inline void set_hud_status( bool status ) { hud_status = status; }
     inline void set_sound (bool value) { sound = value; }
     inline void set_flight_model (int value) { flight_model = value; }