aboutsummaryrefslogtreecommitdiff
path: root/src/client/fontengine.h
diff options
context:
space:
mode:
authorElias Fleckenstein <54945686+EliasFleckenstein03@users.noreply.github.com>2020-11-04 16:57:47 +0100
committerGitHub <noreply@github.com>2020-11-04 16:57:47 +0100
commit3e16c3a78fff61c20e63ba730d15e94e3bb877b4 (patch)
treec070350db219f2c4241d22bc31949685c7b42fe9 /src/client/fontengine.h
parent5d9ae5a91c544fc7fbd475decf47cef7e09ef8fc (diff)
parent6ccb5835ff55d85156be91473c598eca9d6cb9a6 (diff)
downloaddragonfireclient-3e16c3a78fff61c20e63ba730d15e94e3bb877b4.tar.xz
Merge branch 'master' into master
Diffstat (limited to 'src/client/fontengine.h')
-rw-r--r--src/client/fontengine.h54
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;