class EE::Graphics::FontTrueType¶
Overview¶
#include <fonttruetype.hpp> class FontTrueType: public EE::Graphics::Font { public: // structs struct Page; struct Row; // construction ~FontTrueType(); // methods static FontTrueType* New(const std::string& FontName); static FontTrueType* New(const std::string& FontName, const std::string& filename); bool loadFromFile(const std::string& filename); bool loadFromMemory(const void* data, std::size_t sizeInBytes, bool copyData = true); bool loadFromStream(IOStream& stream); bool loadFromPack(Pack* pack, std::string filePackPath); virtual const Font::Info& getInfo() const; virtual const Glyph& getGlyph(Uint32 codePoint, unsigned int characterSize, bool bold, bool italic, Float outlineThickness = 0, Float maxWidth = 0) const; const Glyph& getGlyphByIndex(Uint32 index, unsigned int characterSize, bool bold, bool italic, Float outlineThickness = 0) const; virtual GlyphDrawable* getGlyphDrawable(Uint32 codePoint, unsigned int characterSize, bool bold = false, bool italic = false, Float outlineThickness = 0, const Float& forzeSize = 0) const; GlyphDrawable* getGlyphDrawableFromGlyphIndex(Uint32 glyphIndex, unsigned int characterSize, bool bold = false, bool italic = false, Float outlineThickness = 0, const Float& maxWidth = 0) const; virtual Float getKerning(Uint32 first, Uint32 second, unsigned int characterSize, bool bold, bool italic, Float outlineThickness = 0) const; Float getKerningFromGlyphIndex(Uint32 first, Uint32 second, unsigned int characterSize, bool bold, bool italic, Float outlineThickness = 0) const; virtual Float getLineSpacing(unsigned int characterSize) const; virtual Float getAscent(unsigned int characterSize) const; virtual Float getDescent(unsigned int characterSize) const; virtual Uint32 getFontHeight(const Uint32& characterSize) const; virtual Float getUnderlinePosition(unsigned int characterSize) const; virtual Float getUnderlineThickness(unsigned int characterSize) const; virtual Texture* getTexture(unsigned int characterSize) const; virtual bool loaded() const; FontTrueType& operator=(const FontTrueType& right); bool getBoldAdvanceSameAsRegular() const; void setBoldAdvanceSameAsRegular(bool boldAdvanceSameAsRegular); bool isColorEmojiFont() const; virtual bool isMonospace() const; virtual bool isScalable() const; bool isEmojiFont() const; bool hasGlyph(Uint32 codePoint) const; void setIsColorEmojiFont(bool isColorEmojiFont); void setIsEmojiFont(bool isEmojiFont); void setForceIsMonospace(bool isMonospace); bool isEmojiFallbackEnabled() const; void setEnableEmojiFallback(bool enableEmojiFallback); const Uint32& getFontInternalId() const; bool isFallbackFontEnabled() const; void setEnableFallbackFont(bool enableFallbackFont); bool getEnableDynamicMonospace() const; void setEnableDynamicMonospace(bool enableDynamicMonospace); FontHinting getHinting() const; void setHinting(FontHinting hinting); FontAntialiasing getAntialiasing() const; void setAntialiasing(FontAntialiasing antialiasing); virtual bool isBold() const; virtual bool isItalic() const; virtual bool isBoldItalic() const; virtual bool hasBold() const; virtual bool hasItalic() const; virtual bool hasBoldItalic() const; FontTrueType* getBoldFont() const; FontTrueType* getItalicFont() const; FontTrueType* getBoldItalicFont() const; void setBoldFont(FontTrueType* fontBold); void setItalicFont(FontTrueType* fontItalic); void setBoldItalicFont(FontTrueType* fontBoldItalic); void* face() const; void* hb() const; bool setCurrentSize(unsigned int characterSize) const; void clearCache(); };
Inherited Members¶
public: // typedefs typedef std::function<void(Uint32, Event, Font*)> FontEventCallback; // enums enum Event; // structs struct Info; // methods static Uint32 getHorizontalAlign(const Uint32& flags); static Uint32 getVerticalAlign(const Uint32& flags); static bool isEmojiCodePoint(const Uint32& codePoint); static bool containsEmojiCodePoint(const String& string); static std::vector<std::size_t> emojiCodePointsPositions(const String& string); virtual Uint32 getFontHeight(const Uint32& characterSize) const = 0; const FontType& getType() const; const std::string& getName() const; void setName(const std::string& setName); const String::HashType& getId(); virtual bool isMonospace() const = 0; virtual bool isScalable() const = 0; virtual const Info& getInfo() const = 0; virtual const Glyph& getGlyph(Uint32 codePoint, unsigned int characterSize, bool bold, bool italic, Float outlineThickness = 0, Float maxWidth = 0) const = 0; virtual GlyphDrawable* getGlyphDrawable(Uint32 codePoint, unsigned int characterSize, bool bold = false, bool italic = false, Float outlineThickness = 0, const Float& forzeSize = 0) const = 0; virtual Float getKerning(Uint32 first, Uint32 second, unsigned int characterSize, bool bold, bool italic, Float outlineThickness = 0) const = 0; virtual Float getAscent(unsigned int characterSize) const; virtual Float getDescent(unsigned int) const; virtual Float getLineSpacing(unsigned int characterSize) const = 0; virtual Float getUnderlinePosition(unsigned int characterSize) const = 0; virtual Float getUnderlineThickness(unsigned int characterSize) const = 0; virtual Texture* getTexture(unsigned int characterSize) const = 0; virtual Uint32 getFontStyle() const; virtual bool isRegular() const; virtual bool isBold() const; virtual bool isItalic() const; virtual bool isBoldItalic() const; virtual bool hasBold() const; virtual bool hasItalic() const; virtual bool hasBoldItalic() const; virtual bool loaded() const = 0; Uint32 pushFontEventCallback(const FontEventCallback& cb); void popFontEventCallback(const Uint32& callbackId);
Detailed Documentation¶
Methods¶
virtual GlyphDrawable* getGlyphDrawable(Uint32 codePoint, unsigned int characterSize, bool bold = false, bool italic = false, Float outlineThickness = 0, const Float& forzeSize = 0) const
Returns:
The glyph drawable that represents the glyph in a texture. The glyph drawable allocation is managed by the font.
virtual Uint32 getFontHeight(const Uint32& characterSize) const
Returns:
The current font height
void setBoldAdvanceSameAsRegular(bool boldAdvanceSameAsRegular)
You can enable this to not add more space in the advance properties for bold fonts, so they advance like a regular glyph (useful for monospaced fonts).