]> git.mxchange.org Git - flightgear.git/commitdiff
- use global fontcache
authormfranz <mfranz>
Tue, 6 Jun 2006 15:34:18 +0000 (15:34 +0000)
committermfranz <mfranz>
Tue, 6 Jun 2006 15:34:18 +0000 (15:34 +0000)
- make font/size configurable

src/Cockpit/hud.cxx
src/Cockpit/hud.hxx

index 8ddf3bb711086af532bfd2f96a4984ca56da3ff0..a9e5782015317a3645dd3540faa5d5871bfa6a74 100644 (file)
@@ -80,7 +80,8 @@ fgLineList         HUD_LineList;
 fgLineList         HUD_StippleLineList;
 
 fntRenderer *HUDtext = 0;
-float  HUD_TextSize = 0;
+fntTexFont *HUD_Font = 0;
+float HUD_TextSize = 0;
 int HUD_style = 0;
 
 float HUD_matrix[16];
@@ -763,11 +764,13 @@ int fgHUDInit( fgAIRCRAFT * /* current_aircraft */ )
         delete tmp;
     }
 
-//    HUD_TextSize = fgGetInt("/sim/startup/xsize") / 60;
-    HUD_TextSize = 10;
+    FGFontCache *fc = globals->get_fontcache();
+    HUD_Font = fc->getTexFont(fgGetString("/sim/hud/font/name", "Helvetica.txf"));
+    HUD_TextSize = fgGetFloat("/sim/hud/font/size", 10);
+
     HUDtext = new fntRenderer();
-    HUDtext -> setFont      ( guiFntHandle ) ;
-    HUDtext -> setPointSize ( HUD_TextSize ) ;
+    HUDtext->setFont(HUD_Font);
+    HUDtext->setPointSize(HUD_TextSize);
     HUD_TextList.setFont( HUDtext );
     
     return 0;  // For now. Later we may use this for an error code.
index 4f37c905f3e9c4f7e4dae62336f52d6a37743896..f87b66fafa0992f384ea332ce0e9a41eed8dffee 100644 (file)
@@ -267,6 +267,7 @@ class DrawLineSeg2D {
 
 
 #define USE_HUD_TextList
+extern fntTexFont        *HUD_Font;
 extern float              HUD_TextSize;
 extern fntRenderer       *HUDtext;
 extern float HUD_matrix[16];
@@ -297,7 +298,7 @@ public:
     {
         if ( HUDtext && str ) {
             float r, l ;
-            guiFntHandle->getBBox ( str, HUD_TextSize, 0, &l, &r, NULL, NULL ) ;
+            HUD_Font->getBBox ( str, HUD_TextSize, 0, &l, &r, NULL, NULL ) ;
             return FloatToInt( r - l );
         }
         return 0 ;
@@ -307,7 +308,7 @@ public:
     {
         if ( HUDtext && strlen( msg )) {
             float r, l ;
-            guiFntHandle->getBBox ( msg, HUD_TextSize, 0, &l, &r, NULL, NULL ) ;
+            HUD_Font->getBBox ( msg, HUD_TextSize, 0, &l, &r, NULL, NULL ) ;
             return FloatToInt( r - l );
         }
         return 0 ;
@@ -335,7 +336,7 @@ public:
                 i++;
             }
             if(c>p) {
-                fnt->setPointSize(8);
+                fnt->setPointSize(HUD_TextSize * 0.8);
                 int p1=c-3;
                 char *tmp1=msg+p1;
                 int p2=p1*8;
@@ -343,7 +344,7 @@ public:
                 fnt->start2f(x+p2,y);
                 fnt->puts(tmp1);
 
-                fnt->setPointSize(12);
+                fnt->setPointSize(HUD_TextSize * 1.2);
                 char tmp2[64];
                 strncpy(tmp2,msg,p1);
                 tmp2[p1]='\0';
@@ -351,13 +352,13 @@ public:
                 fnt->start2f(x,y);
                 fnt->puts(tmp2);
             } else {
-                fnt->setPointSize(12);                                 
+                fnt->setPointSize(HUD_TextSize * 1.2);
                 fnt->start2f( x, y );
                 fnt->puts(tmp);
             }
         } else {
             //if digits not equal to 1
-            fnt->setPointSize(8);         
+            fnt->setPointSize(HUD_TextSize * 0.8);
             fnt->start2f( x, y );
             fnt->puts( msg ) ;
         }
@@ -523,7 +524,7 @@ public:
     {
         if ( HUDtext && str ) {
             float r, l ;
-            guiFntHandle->getBBox ( str, HUD_TextSize, 0, &l, &r, NULL, NULL ) ;
+            HUD_Font->getBBox ( str, HUD_TextSize, 0, &l, &r, NULL, NULL ) ;
             return FloatToInt( r - l );
         }
         return 0 ;