]> git.mxchange.org Git - flightgear.git/commitdiff
FGFontCache: add getter for the fntTexFont component of a cached font
authormfranz <mfranz>
Tue, 6 Jun 2006 12:49:42 +0000 (12:49 +0000)
committermfranz <mfranz>
Tue, 6 Jun 2006 12:49:42 +0000 (12:49 +0000)
src/GUI/new_gui.cxx
src/GUI/new_gui.hxx

index 6c51dd122288bc2d4ecd3f995fbe399d60f7c886..4f4b65b982bcd47b75820e6a54a0ae3226858477 100644 (file)
@@ -383,6 +383,7 @@ FGColor::merge(const FGColor *color)
 }
 
 
+
 \f
 ////////////////////////////////////////////////////////////////////////
 // FGFontCache class.
@@ -416,8 +417,8 @@ FGFontCache::~FGFontCache()
    _fonts.clear();
 }
 
-puFont *
-FGFontCache::get(const char *name, float size, float slant)
+struct FGFontCache::fnt *
+FGFontCache::getfnt(const char *name, float size, float slant)
 {
     if (!_initialized) {
         char *envp = ::getenv("FG_FONTS");
@@ -432,10 +433,10 @@ FGFontCache::get(const char *name, float size, float slant)
 
     for (int i=0; guifonts[i].name; i++)
         _fonts[guifonts[i].name] = new fnt(guifonts[i].font);
-    _itt_t it;
 
+    _itt_t it;
     if ((it = _fonts.find(name)) != _fonts.end())
-        return it->second->pufont;
+        return it->second;
 
     SGPath path(_path);
     path.append(name);
@@ -446,12 +447,23 @@ FGFontCache::get(const char *name, float size, float slant)
     if (f->texfont->load((char *)path.c_str())) {
         f->pufont = new puFont;
         f->pufont->initialize(static_cast<fntFont *>(f->texfont), size, slant);
-        _fonts[name] = f;
-        return f->pufont;
+        return _fonts[name] = f;
     }
 
     delete f;
-    return _fonts["default"]->pufont;
+    return _fonts["default"];
+}
+
+puFont *
+FGFontCache::get(const char *name, float size, float slant)
+{
+    return getfnt(name, size, slant)->pufont;
+}
+
+fntTexFont *
+FGFontCache::getTexFont(const char *name, float size, float slant)
+{
+    return getfnt(name, size, slant)->texfont;
 }
 
 puFont *
index 12f44401ae5c3786555c6f8595435085fbd73d28..0957564f44474a7c80ea8943f076d6dd9a259230 100644 (file)
@@ -304,6 +304,7 @@ private:
     map<const string,fnt *> _fonts;
     typedef map<const string,fnt *>::const_iterator _itt_t;
     bool _initialized;
+    struct fnt *getfnt(const char *name, float size, float slant);
 
 public:
     FGFontCache();
@@ -311,6 +312,8 @@ public:
 
     puFont *get(const char *name, float size=15.0, float slant=0.0);
     puFont *get(SGPropertyNode *node);
+
+    fntTexFont *getTexFont(const char *name, float size=15.0, float slant=0.0);
 };