HDK
|
#include <RE_Font.h>
Public Member Functions | |
bool | isValid () const |
const char * | getName () const |
Returns the full name of the font. More... | |
const FONT_Info & | getFontInfo () const |
float | getSize () const |
Get the size, in points, of this font. More... | |
bool | operator== (const RE_Font &other) const |
bool | operator!= (const RE_Font &other) const |
Static Public Member Functions | |
static RE_Font & | get (const FONT_Info &font_info, float size) |
static RE_Font & | get (const char *font_name, float size) |
static RE_Font & | get (RE_Font &font, FONT_Variant variant) |
static RE_Font & | emptyFont () |
class | re_FontCache |
The size, in points, of this font. More... | |
class | RE_RenderUI |
The size, in points, of this font. More... | |
static void | renderFontDeferData (RE_Render *r, UT_Array< RE_FontDeferData > &deferData) |
Performs rendering of the render data generated by createFontDeferData. More... | |
static void | createFontDeferData (RE_Render *r, const UT_StringArray &strings, const UT_Array< RE_Font * > &fonts, const UT_Array< UT_Unicode::transform * > &xforms, const UT_Array< UT_FRGBA > &clrs, const UT_Array< UT_Vector3F > &positions, fpreal32 sx, fpreal32 sy, fpreal32 tx, fpreal32 ty, UT_Array< RE_FontDeferData > &defer_data, bool use_shared_font_buffers) |
float | getAscender () |
float | getDescender () |
float | getHeight () |
float | getXHeight () |
float | getUnderlinePos () |
float | getUnderlineThickness () |
bool | hasGlyph (utf32 cp) |
Returns true if the font contains a glyph for the given code point. More... | |
float | getHorizAdvance (utf32 cp) |
float | getHorizAdvance (utf32 cp, utf32 cp_next) |
float | getStringWidth (const utf8 *s, const utf8 *e=NULL, const UT_Unicode::transform *cp_xform=NULL) |
Get the width of a string, including all kerning adjustments. More... | |
float | getStringWidth (const UT_StringView &str, const UT_Unicode::transform *cp_xform=NULL) |
The size, in points, of this font. More... | |
bool | isStringWiderThan (const utf8 *s, const utf8 *e, float width, const UT_Unicode::transform *cp_xform=NULL) |
bool | isStringWiderThan (const UT_StringView &str, float width, const UT_Unicode::transform *cp_xform=NULL) |
The size, in points, of this font. More... | |
bool | getTrimmedString (const utf8 *&s, const utf8 *&e, const utf8 *ellipsis, float max_width, bool trim_right, const UT_Unicode::transform *cp_xform=NULL, float *trimmed_width=NULL) |
bool | splitString (const UT_StringView &s, UT_StringView &left, UT_StringView &right, float max_width, RE_StringSplitType split_type=RE_SST_NARROWER_ONLY, const UT_Unicode::transform *cp_xform=NULL) |
bool | wrapString (const UT_StringView &s, UT_StringViewArray &result, float max_width, float max_height=FLT_MAX, RE_StringSplitType split_type=RE_SST_BOUNDARY_HARD, const UT_Unicode::transform *cp_xform=NULL) |
float | getIntegerWidth (const char *s) |
Faster String width method for integers. More... | |
float | getFloatWidth (const char *s) |
Faster String width method for floats. More... | |
|
static |
Builds directly renderable data structures from the provided set of strings, fonts, positions, and colors.
|
static |
|
static |
float RE_Font::getAscender | ( | ) |
Font query Returns the height of the ascender, in pixels. The ascender is the distance from the font's baseline to the top of the tallest glyph.
float RE_Font::getDescender | ( | ) |
The descender is the distance, in pixels, from the baseline to the bottom-most pixel of all glyphs in the font.
float RE_Font::getFloatWidth | ( | const char * | s | ) |
Faster String width method for floats.
float RE_Font::getHeight | ( | ) |
The height is the baseline-to-baseline distance for this font. This should be used as the appropriate vertical spacing for the font.
float RE_Font::getHorizAdvance | ( | utf32 | cp | ) |
Get the horizontal advance, in pixels, of the cursor, after drawing the given code point's glyph. NOTE: This ignores kerning! If you want to get the width of a whole string, use getStringWidth instead.
Get the horizontal advance, in pixels, of the cursor, after drawing the given code point's glyph, and including it's kerning pair glyph.
float RE_Font::getIntegerWidth | ( | const char * | s | ) |
Faster String width method for integers.
const char* RE_Font::getName | ( | ) | const |
Returns the full name of the font.
|
inline |
float RE_Font::getStringWidth | ( | const utf8 * | s, |
const utf8 * | e = NULL , |
||
const UT_Unicode::transform * | cp_xform = NULL |
||
) |
Get the width of a string, including all kerning adjustments.
|
inline |
bool RE_Font::getTrimmedString | ( | const utf8 *& | s, |
const utf8 *& | e, | ||
const utf8 * | ellipsis, | ||
float | max_width, | ||
bool | trim_right, | ||
const UT_Unicode::transform * | cp_xform = NULL , |
||
float * | trimmed_width = NULL |
||
) |
Get the length of string that can be put in the given space, using the provided ellipsis text to replace removed characters.
float RE_Font::getUnderlinePos | ( | ) |
Returns the signed distance from the baseline to where the the underline for the font should be drawn.
float RE_Font::getUnderlineThickness | ( | ) |
Returns the thickness of the underline to be drawn, corresponding with the font's size and weight.
float RE_Font::getXHeight | ( | ) |
Get the x-height. This is usually the distance from the baseline to the top of the lower-case x.
bool RE_Font::hasGlyph | ( | utf32 | cp | ) |
Returns true if the font contains a glyph for the given code point.
bool RE_Font::isStringWiderThan | ( | const utf8 * | s, |
const utf8 * | e, | ||
float | width, | ||
const UT_Unicode::transform * | cp_xform = NULL |
||
) |
Quick check to see if a string exceeds the given width. Usually faster than calling getStringWidth if only the threshold check is required.
|
inline |
|
static |
Performs rendering of the render data generated by createFontDeferData.
bool RE_Font::splitString | ( | const UT_StringView & | s, |
UT_StringView & | left, | ||
UT_StringView & | right, | ||
float | max_width, | ||
RE_StringSplitType | split_type = RE_SST_NARROWER_ONLY , |
||
const UT_Unicode::transform * | cp_xform = NULL |
||
) |
Split the string into two parts, at a breakable space or a breakable hyphen, using the font's metric to ensure that the left part doesn't exceed max_width
. The particular splitting strategy, and whether max_width
is strictly honored, is governed by split_type
. If the splitting fails, this function returns false
.
bool RE_Font::wrapString | ( | const UT_StringView & | s, |
UT_StringViewArray & | result, | ||
float | max_width, | ||
float | max_height = FLT_MAX , |
||
RE_StringSplitType | split_type = RE_SST_BOUNDARY_HARD , |
||
const UT_Unicode::transform * | cp_xform = NULL |
||
) |
Takes an input string, and splits it up into a list of strings none wider than max_width
(depending on splitting strategy). The string is initially split by newline characters, and then each sub-string split using splitString
to satisfy the maximum width requirement. If max_height
is given, then only as many lines as will fit in that vertical space, assuming the lines are spaced out by the amount returned by getHeight
. Returns false
if it failed to fully wrap the input string.
|
friend |
|
friend |