}
+
\f
////////////////////////////////////////////////////////////////////////
// FGFontCache class.
_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");
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);
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 *
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();
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);
};