diff options
author | Elias Fleckenstein <54945686+EliasFleckenstein03@users.noreply.github.com> | 2020-11-04 16:57:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-04 16:57:47 +0100 |
commit | 3e16c3a78fff61c20e63ba730d15e94e3bb877b4 (patch) | |
tree | c070350db219f2c4241d22bc31949685c7b42fe9 /src/client/fontengine.h | |
parent | 5d9ae5a91c544fc7fbd475decf47cef7e09ef8fc (diff) | |
parent | 6ccb5835ff55d85156be91473c598eca9d6cb9a6 (diff) | |
download | dragonfireclient-3e16c3a78fff61c20e63ba730d15e94e3bb877b4.tar.xz |
Merge branch 'master' into master
Diffstat (limited to 'src/client/fontengine.h')
-rw-r--r-- | src/client/fontengine.h | 54 |
1 files changed, 29 insertions, 25 deletions
diff --git a/src/client/fontengine.h b/src/client/fontengine.h index a9d7a13c2..865b2d3ff 100644 --- a/src/client/fontengine.h +++ b/src/client/fontengine.h @@ -29,8 +29,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #define FONT_SIZE_UNSPECIFIED 0xFFFFFFFF -enum FontMode : u8 -{ +enum FontMode : u8 { FM_Standard = 0, FM_Mono, FM_Fallback, @@ -40,15 +39,18 @@ enum FontMode : u8 FM_Unspecified }; -struct FontSpec -{ +struct FontSpec { FontSpec(unsigned int font_size, FontMode mode, bool bold, bool italic) : - size(font_size), mode(mode), bold(bold), italic(italic) + size(font_size), + mode(mode), + bold(bold), + italic(italic) {} + + u16 getHash() { + return (mode << 2) | (bold << 1) | italic; } - u16 getHash() { return (mode << 2) | (bold << 1) | italic; } - unsigned int size; FontMode mode; bool bold; @@ -58,15 +60,16 @@ struct FontSpec class FontEngine { public: - FontEngine(Settings *main_settings, gui::IGUIEnvironment *env); + + FontEngine(Settings* main_settings, gui::IGUIEnvironment* env); ~FontEngine(); // Get best possible font specified by FontSpec irr::gui::IGUIFont *getFont(FontSpec spec); - irr::gui::IGUIFont *getFont(unsigned int font_size = FONT_SIZE_UNSPECIFIED, - FontMode mode = FM_Unspecified) + irr::gui::IGUIFont *getFont(unsigned int font_size=FONT_SIZE_UNSPECIFIED, + FontMode mode=FM_Unspecified) { FontSpec spec(font_size, mode, m_default_bold, m_default_italic); return getFont(spec); @@ -76,8 +79,9 @@ public: unsigned int getTextHeight(const FontSpec &spec); /** get text width if a text for a specific font */ - unsigned int getTextHeight(unsigned int font_size = FONT_SIZE_UNSPECIFIED, - FontMode mode = FM_Unspecified) + unsigned int getTextHeight( + unsigned int font_size=FONT_SIZE_UNSPECIFIED, + FontMode mode=FM_Unspecified) { FontSpec spec(font_size, mode, m_default_bold, m_default_italic); return getTextHeight(spec); @@ -86,9 +90,9 @@ public: unsigned int getTextWidth(const std::wstring &text, const FontSpec &spec); /** get text width if a text for a specific font */ - unsigned int getTextWidth(const std::wstring &text, - unsigned int font_size = FONT_SIZE_UNSPECIFIED, - FontMode mode = FM_Unspecified) + unsigned int getTextWidth(const std::wstring& text, + unsigned int font_size=FONT_SIZE_UNSPECIFIED, + FontMode mode=FM_Unspecified) { FontSpec spec(font_size, mode, m_default_bold, m_default_italic); return getTextWidth(text, spec); @@ -99,9 +103,9 @@ public: return getTextWidth(utf8_to_wide(text), spec); } - unsigned int getTextWidth(const std::string &text, - unsigned int font_size = FONT_SIZE_UNSPECIFIED, - FontMode mode = FM_Unspecified) + unsigned int getTextWidth(const std::string& text, + unsigned int font_size=FONT_SIZE_UNSPECIFIED, + FontMode mode=FM_Unspecified) { FontSpec spec(font_size, mode, m_default_bold, m_default_italic); return getTextWidth(utf8_to_wide(text), spec); @@ -110,8 +114,8 @@ public: /** get line height for a specific font (including empty room between lines) */ unsigned int getLineHeight(const FontSpec &spec); - unsigned int getLineHeight(unsigned int font_size = FONT_SIZE_UNSPECIFIED, - FontMode mode = FM_Unspecified) + unsigned int getLineHeight(unsigned int font_size=FONT_SIZE_UNSPECIFIED, + FontMode mode=FM_Unspecified) { FontSpec spec(font_size, mode, m_default_bold, m_default_italic); return getLineHeight(spec); @@ -124,7 +128,7 @@ public: unsigned int getFontSize(FontMode mode); /** initialize font engine */ - void initialize(Settings *main_settings, gui::IGUIEnvironment *env); + void initialize(Settings* main_settings, gui::IGUIEnvironment* env); /** update internal parameters from settings */ void readSettings(); @@ -146,13 +150,13 @@ private: void cleanCache(); /** pointer to settings for registering callbacks or reading config */ - Settings *m_settings = nullptr; + Settings* m_settings = nullptr; /** pointer to irrlicht gui environment */ - gui::IGUIEnvironment *m_env = nullptr; + gui::IGUIEnvironment* m_env = nullptr; /** internal storage for caching fonts of different size */ - std::map<unsigned int, irr::gui::IGUIFont *> m_font_cache[FM_MaxMode << 2]; + std::map<unsigned int, irr::gui::IGUIFont*> m_font_cache[FM_MaxMode << 2]; /** default font size to use */ unsigned int m_default_size[FM_MaxMode]; @@ -168,4 +172,4 @@ private: }; /** interface to access main font engine*/ -extern FontEngine *g_fontengine; +extern FontEngine* g_fontengine; |