Class representing a TrueType font. More...
#include <CGUITTFont.h>
Inheritance diagram for gui::CGUITTFont:
Collaboration diagram for gui::CGUITTFont:Public Member Functions | |
| virtual | ~CGUITTFont () |
| Destructor. | |
| void | setBatchLoadSize (u32 batch_size) |
| Sets the amount of glyphs to batch load. | |
| u32 | getFontSize () const |
| Get the font size. | |
| bool | useAutoHinting () const |
| Check if the font auto-hinting is enabled. | |
| bool | useHinting () const |
| Check if the font hinting is enabled. | |
| bool | useMonochrome () const |
| Check if the font is being loaded as a monochrome font. | |
| void | setMonochrome (const bool flag) |
| Tells the font to use monochrome rendering. | |
| void | setFontHinting (const bool enable, const bool enable_auto_hinting=true) |
| Enables or disables font hinting. | |
| virtual void | draw (const core::stringw &utext, const core::rect< s32 > &position, video::SColor color, bool hcenter=false, bool vcenter=false, const core::rect< s32 > *clip=0) override |
| Draws some text and clips it to the specified rectangle if wanted. | |
| void | draw (const EnrichedString &text, const core::rect< s32 > &position, bool hcenter=false, bool vcenter=false, const core::rect< s32 > *clip=0) |
| virtual core::dimension2du | getDimension (const wchar_t *text) const override |
| Returns the dimension of a text string. | |
| virtual s32 | getCharacterFromPos (const wchar_t *text, s32 pixel_x) const override |
| Calculates the index of the character in the text which is on a specific position. | |
| virtual void | setKerningWidth (s32 kerning) override |
| Sets global kerning width for the font. | |
| virtual void | setKerningHeight (s32 kerning) override |
| Sets global kerning height for the font. | |
| virtual core::vector2di | getKerning (const wchar_t thisLetter, const wchar_t previousLetter) const override |
| Returns the distance between letters. | |
| virtual void | setInvisibleCharacters (const wchar_t *s) override |
| Define which characters should not be drawn by the font. | |
| CGUITTGlyphPage * | getLastGlyphPage () const |
| Get the last glyph page if there's still available slots. | |
| CGUITTGlyphPage * | createGlyphPage (const u8 pixel_mode) |
| Create a new glyph page texture. | |
| u32 | getLastGlyphPageIndex () const |
| Get the last glyph page's index. | |
| void | setFallback (gui::IGUIFont *font) |
| Set font that should be used for glyphs not present in ours. | |
| s32 | getAscender () const |
Static Public Member Functions | |
| static CGUITTFont * | createTTFont (IGUIEnvironment *env, SGUITTFace *face, u32 size, bool antialias=true, bool preload=true, u32 shadow=0, u32 shadow_alpha=255) |
| Creates a new TrueType font and returns a pointer to it. | |
Protected Attributes | |
| bool | use_monochrome |
| bool | use_hinting |
| bool | use_auto_hinting |
| u32 | size |
| u32 | batch_load_size |
Private Member Functions | |
| core::dimension2d< u32 > | getDimension (const std::u32string &text) const |
| s32 | getCharacterFromPos (const std::u32string &text, s32 pixel_x) const |
| std::u32string | convertWCharToU32String (const wchar_t *const) const |
| CGUITTFont (IGUIEnvironment *env) | |
| Constructor. | |
| bool | load (SGUITTFace *face, const u32 size, const bool antialias, const bool transparency, const bool preload) |
| void | reset_images () |
| void | update_glyph_pages () const |
| void | update_load_flags () |
| u32 | getLineHeight () const |
| Gets the overall font height, including a line gap of 1 px. | |
| u32 | getWidthFromCharacter (char32_t c) const |
| u32 | getHeightFromCharacter (char32_t c) const |
| u32 | getGlyphIndexByChar (char32_t c) const |
Returns (index + 1) of this->Glyphs Returns 0 if no such glyph is provided by the font. | |
| core::vector2di | getKerning (const char32_t thisLetter, const char32_t previousLetter) const |
Private Attributes | |
| video::IVideoDriver * | Driver = nullptr |
| FT_Face | tt_face |
| FT_Size_Metrics | font_metrics |
| FT_Int32 | load_flags |
| core::array< CGUITTGlyphPage * > | Glyph_Pages |
| core::array< SGUITTGlyph > | Glyphs |
| s32 | GlobalKerningWidth = 0 |
| s32 | GlobalKerningHeight = 0 |
| std::u32string | InvisibleChars |
| u32 | shadow_offset = 0 |
| u32 | shadow_alpha = 0 |
| irr_ptr< gui::IGUIFont > | fallback |
Class representing a TrueType font.
|
virtual |
Destructor.
References Driver, Glyphs, and reset_images().
Here is the call graph for this function:
|
private |
Constructor.
References Driver, and setInvisibleCharacters().
Referenced by createTTFont().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References p().
Referenced by draw(), getCharacterFromPos(), getDimension(), and setInvisibleCharacters().
Here is the call graph for this function:
Here is the caller graph for this function:| CGUITTGlyphPage * gui::CGUITTFont::createGlyphPage | ( | const u8 | pixel_mode | ) |
Create a new glyph page texture.
| pixel_mode | the pixel mode defined by FT_Pixel_Mode |
References gui::CGUITTGlyphPage::available_slots, gui::CGUITTGlyphPage::createPageTexture(), Driver, errorstream, Glyph_Pages, size, and tt_face.
Referenced by gui::SGUITTGlyph::preload().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Creates a new TrueType font and returns a pointer to it.
The pointer must be drop()'ed when finished.
| env | The IGUIEnvironment the font loads out of. |
| size | The size of the font glyphs in pixels. Since this is the size of the individual glyphs, the true height of the font may change depending on the characters used. |
| antialias | set the use_monochrome (opposite to antialias) flag |
| preload | create texture with important glyphs directly |
References CGUITTFont(), load(), shadow_alpha, shadow_offset, and size.
Referenced by FontEngine::initFont().
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
Draws some text and clips it to the specified rectangle if wanted.
References draw().
Referenced by draw(), gui::StaticText::draw(), Hud::drawLuaElements(), and GUIChatConsole::drawText().
Here is the call graph for this function:
Here is the caller graph for this function:| void gui::CGUITTFont::draw | ( | const EnrichedString & | text, |
| const core::rect< s32 > & | position, | ||
| bool | hcenter = false, | ||
| bool | vcenter = false, | ||
| const core::rect< s32 > * | clip = 0 ) |
References EnrichedString::c_str(), convertWCharToU32String(), Driver, fallback, font_metrics, EnrichedString::getColors(), getDimension(), getGlyphIndexByChar(), getKerning(), getLineHeight(), getWidthFromCharacter(), gui::SGUITTGlyph::glyph_page, Glyph_Pages, Glyphs, InvisibleChars, gui::SGUITTGlyph::offset, gui::CGUITTGlyphPage::render_colors, gui::CGUITTGlyphPage::render_positions, gui::CGUITTGlyphPage::render_source_rects, shadow_alpha, shadow_offset, gui::SGUITTGlyph::source_rect, gui::CGUITTGlyphPage::texture, and update_glyph_pages().
Here is the call graph for this function:
|
inline |
References font_metrics.
Referenced by TextDrawer::TextDrawer().
Here is the caller graph for this function:
|
private |
|
overridevirtual |
Calculates the index of the character in the text which is on a specific position.
References convertWCharToU32String(), and getCharacterFromPos().
Referenced by getCharacterFromPos().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References getKerning(), getLineHeight(), and getWidthFromCharacter().
Here is the call graph for this function:
|
overridevirtual |
Returns the dimension of a text string.
References convertWCharToU32String(), and getDimension().
Referenced by draw(), and getDimension().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Get the font size.
References size.
Referenced by GUITable::setTable().
Here is the caller graph for this function:
|
private |
Returns (index + 1) of this->Glyphs Returns 0 if no such glyph is provided by the font.
References batch_load_size, gui::SGUITTGlyph::createGlyphImage(), Driver, gui::SGUITTGlyph::glyph_page, Glyph_Pages, Glyphs, gui::SGUITTGlyph::isLoaded(), load_flags, gui::SGUITTGlyph::preload(), size, and tt_face.
Referenced by draw(), getHeightFromCharacter(), getKerning(), getWidthFromCharacter(), and load().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
References fallback, font_metrics, getGlyphIndexByChar(), and Glyphs.
Here is the call graph for this function:
|
private |
References fallback, getGlyphIndexByChar(), GlobalKerningHeight, GlobalKerningWidth, size, and tt_face.
Here is the call graph for this function:
|
overridevirtual |
Returns the distance between letters.
References getKerning().
Referenced by draw(), getCharacterFromPos(), getDimension(), and getKerning().
Here is the call graph for this function:
Here is the caller graph for this function:| CGUITTGlyphPage * gui::CGUITTFont::getLastGlyphPage | ( | ) | const |
Get the last glyph page if there's still available slots.
If not, it will return zero.
References gui::CGUITTGlyphPage::available_slots, getLastGlyphPageIndex(), and Glyph_Pages.
Referenced by gui::SGUITTGlyph::preload().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Get the last glyph page's index.
References Glyph_Pages.
Referenced by getLastGlyphPage(), and gui::SGUITTGlyph::preload().
Here is the caller graph for this function:
|
inlineprivate |
Gets the overall font height, including a line gap of 1 px.
References font_metrics.
Referenced by draw(), and getDimension().
Here is the caller graph for this function:
|
inlineprivate |
References fallback, font_metrics, getGlyphIndexByChar(), and Glyphs.
Referenced by draw(), getCharacterFromPos(), and getDimension().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References batch_load_size, Driver, gui::SGUITTFace::face, font_metrics, getGlyphIndexByChar(), Glyphs, size, tt_face, update_load_flags(), use_monochrome, and verbosestream.
Referenced by createTTFont().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
References Glyph_Pages, Glyphs, and update_load_flags().
Referenced by ~CGUITTFont(), setFontHinting(), and setMonochrome().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Sets the amount of glyphs to batch load.
References batch_load_size.
| void gui::CGUITTFont::setFallback | ( | gui::IGUIFont * | font | ) |
Set font that should be used for glyphs not present in ours.
References fallback, and sanity_check.
| void gui::CGUITTFont::setFontHinting | ( | const bool | enable, |
| const bool | enable_auto_hinting = true ) |
Enables or disables font hinting.
Default: Hinting and auto-hinting true.
| enable | If false, font hinting is turned off. If true, font hinting is turned on. |
| enable_auto_hinting | If true, FreeType uses its own auto-hinting algorithm. If false, it tries to use the algorithm specified by the font. |
References reset_images(), use_auto_hinting, and use_hinting.
Here is the call graph for this function:
|
overridevirtual |
Define which characters should not be drawn by the font.
References convertWCharToU32String(), and InvisibleChars.
Referenced by CGUITTFont().
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
Sets global kerning height for the font.
References GlobalKerningHeight.
|
overridevirtual |
Sets global kerning width for the font.
References GlobalKerningWidth.
| void gui::CGUITTFont::setMonochrome | ( | const bool | flag | ) |
Tells the font to use monochrome rendering.
Default: false.
| flag | If true, the font draws using a monochrome image. If false, the font uses a grayscale image. |
References reset_images(), and use_monochrome.
Here is the call graph for this function:
|
private |
|
inlineprivate |
References load_flags, useAutoHinting(), useHinting(), and useMonochrome().
Referenced by load(), and reset_images().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Check if the font auto-hinting is enabled.
Auto-hinting is FreeType's built-in font hinting engine.
References use_auto_hinting.
Referenced by update_load_flags().
Here is the caller graph for this function:
|
inline |
Check if the font hinting is enabled.
References use_hinting.
Referenced by update_load_flags().
Here is the caller graph for this function:
|
inline |
Check if the font is being loaded as a monochrome font.
The font can either be a 256 color grayscale font, or a 2 color monochrome font.
References use_monochrome.
Referenced by update_load_flags().
Here is the caller graph for this function:
|
protected |
Referenced by getGlyphIndexByChar(), load(), and setBatchLoadSize().
|
private |
Referenced by CGUITTFont(), ~CGUITTFont(), createGlyphPage(), draw(), getGlyphIndexByChar(), and load().
|
private |
Referenced by draw(), getHeightFromCharacter(), getKerning(), getWidthFromCharacter(), and setFallback().
|
private |
Referenced by draw(), getAscender(), getHeightFromCharacter(), getLineHeight(), getWidthFromCharacter(), and load().
|
private |
Referenced by getKerning(), and setKerningHeight().
|
private |
Referenced by getKerning(), and setKerningWidth().
|
mutableprivate |
Referenced by createGlyphPage(), draw(), getGlyphIndexByChar(), getLastGlyphPage(), getLastGlyphPageIndex(), reset_images(), and update_glyph_pages().
|
mutableprivate |
Referenced by ~CGUITTFont(), draw(), getGlyphIndexByChar(), getHeightFromCharacter(), getWidthFromCharacter(), load(), and reset_images().
|
private |
Referenced by draw(), and setInvisibleCharacters().
|
private |
Referenced by getGlyphIndexByChar(), and update_load_flags().
|
private |
Referenced by createTTFont(), and draw().
|
private |
Referenced by createTTFont(), and draw().
|
protected |
Referenced by createGlyphPage(), createTTFont(), getFontSize(), getGlyphIndexByChar(), getKerning(), and load().
|
private |
Referenced by createGlyphPage(), getGlyphIndexByChar(), getKerning(), and load().
|
protected |
Referenced by setFontHinting(), and useAutoHinting().
|
protected |
Referenced by setFontHinting(), and useHinting().
|
protected |
Referenced by load(), setMonochrome(), and useMonochrome().