FGPanel * current_panel = NULL;
static fntRenderer text_renderer;
-
+static fntTexFont *default_font;
+static fntTexFont *led_font;
/**
* Constructor.
void
FGPanel::init ()
{
- // NO-OP
+ SGPath base_path;
+ char* envp = ::getenv( "FG_FONTS" );
+ if ( envp != NULL ) {
+ base_path.set( envp );
+ } else {
+ base_path.set( globals->get_fg_root() );
+ base_path.append( "Fonts" );
+ }
+
+ SGPath fntpath;
+
+ // Install the default font
+ fntpath = base_path;
+ fntpath.append( "typewriter.txf" );
+ default_font = new fntTexFont ;
+ default_font -> load ( (char *)fntpath.c_str() ) ;
+
+ // Install the LED font
+ fntpath = base_path;
+ fntpath.append( "led.txf" );
+ led_font = new fntTexFont ;
+ led_font -> load ( (char *)fntpath.c_str() ) ;
}
////////////////////////////////////////////////////////////////////////
FGTextLayer::FGTextLayer (int w, int h)
- : FGInstrumentLayer(w, h), _pointSize(14.0)
+ : FGInstrumentLayer(w, h), _pointSize(14.0), _font_name("default")
{
_then.stamp();
_color[0] = _color[1] = _color[2] = 0.0;
glPushMatrix();
glColor4fv(_color);
transform();
- text_renderer.setFont(guiFntHandle);
+ if ( _font_name == "led" ) {
+ text_renderer.setFont(led_font);
+ } else {
+ text_renderer.setFont(guiFntHandle);
+ }
text_renderer.setPointSize(_pointSize);
text_renderer.begin();
text_renderer.start3f(0, 0, 0);
_pointSize = size;
}
+void
+FGTextLayer::setFontName(const string &name)
+{
+ _font_name = name;
+}
+
+
void
FGTextLayer::setFont(fntFont * font)
{
virtual void addChunk (Chunk * chunk);
virtual void setColor (float r, float g, float b);
virtual void setPointSize (float size);
+ virtual void setFontName ( const string &name );
virtual void setFont (fntFont * font);
private:
float _color[4];
float _pointSize;
-
+ mutable string _font_name;
mutable string _value;
mutable SGTimeStamp _then;
mutable SGTimeStamp _now;