enum FontMode : u8 {
FM_Standard = 0,
FM_Mono,
- FM_Fallback,
+ _FM_Fallback, // do not use directly
FM_Simple,
FM_SimpleMono,
FM_MaxMode,
bold(bold),
italic(italic) {}
- u16 getHash()
+ u16 getHash() const
{
return (mode << 2) | (static_cast<u8>(bold) << 1) | static_cast<u8>(italic);
}
{
public:
- FontEngine(Settings* main_settings, gui::IGUIEnvironment* env);
+ FontEngine(gui::IGUIEnvironment* env);
~FontEngine();
/** get font size for a specific mode */
unsigned int getFontSize(FontMode mode);
- /** initialize font engine */
- void initialize(Settings* main_settings, gui::IGUIEnvironment* env);
-
/** update internal parameters from settings */
void readSettings();
private:
+ irr::gui::IGUIFont *getFont(FontSpec spec, bool may_fail);
+
/** update content of font cache in case of a setting change made it invalid */
void updateFontCache();
- /** initialize a new font */
+ /** initialize a new TTF font */
gui::IGUIFont *initFont(const FontSpec &spec);
/** initialize a font without freetype */
/** clean cache */
void cleanCache();
- /** pointer to settings for registering callbacks or reading config */
- Settings* m_settings = nullptr;
-
/** pointer to irrlicht gui environment */
gui::IGUIEnvironment* m_env = nullptr;