Skip to content
SiteEmail

cohtml::UserFontDescription

Struct representing user font data. Baseline is 0.

#include <System.h>

Name
structCharInfo
Struct representing data for individual char.
structKerningPairInfo
Struct representing kerning info between chars.
Name
UserFontDescription()
Name
Fonts::UserFontTypeFontType
The font type that’s going to be used for loading and rendering.
const char *FontFamily
The font family.
floatSize
The font size in which the glyph are generated. In pixels.
floatSpread
The font spread size with which the glyphs are generated. It shows us how many pixels does it take to cover the [0-0.5] distance field range. In pixels.
Fonts::FontWeightWeight
The font weight.
boolIsBold
Whether this is a bold font.
boolIsItalic
Whether this is an italic font.
floatLineHeight
The line height of the font according to the Size of the font. In pixels.
floatAscent
The ascent of the font (the distance from the baseline to the tops of the tallest glyphs). Positive number. In pixels.
floatDescent
The descent of the font (the distance from the baseline to the bottoms of the lowest glyphs). Negative number. In pixels.
CharInfo *Chars
Pointer to the char info data.
unsignedNumChars
Number of chars in this font.
KerningPairInfo *KerningPairs
Pointer to kerning info.
unsignedNumKerningPairs
Number of kerning pairs.
inline UserFontDescription()
Fonts::UserFontType FontType;

The font type that’s going to be used for loading and rendering.

const char * FontFamily;

The font family.

float Size;

The font size in which the glyph are generated. In pixels.

float Spread;

The font spread size with which the glyphs are generated. It shows us how many pixels does it take to cover the [0-0.5] distance field range. In pixels.

Note: Spread specifies how many pixels does the distance field spread from the border(between inside and outside of a letter) to the outside. Therefore it maps to the [0-0.5] range. Some tools consider spread to be double the above distance - from end to end and is mapped to the [0-1] range. If that’s the case then that spread should be halved when used here.

Fonts::FontWeight Weight;

The font weight.

bool IsBold;

Whether this is a bold font.

Note: Ignored when Weight is specified (not Auto)

bool IsItalic;

Whether this is an italic font.

float LineHeight;

The line height of the font according to the Size of the font. In pixels.

float Ascent;

The ascent of the font (the distance from the baseline to the tops of the tallest glyphs). Positive number. In pixels.

float Descent;

The descent of the font (the distance from the baseline to the bottoms of the lowest glyphs). Negative number. In pixels.

CharInfo * Chars;

Pointer to the char info data.

unsigned NumChars;

Number of chars in this font.

KerningPairInfo * KerningPairs;

Pointer to kerning info.

Note: Kerning info is optional. If no info is present for given pair an implicit 0 amount of kerning is used. Kerning info is needed only for pairs with amount different from 0.

unsigned NumKerningPairs;

Number of kerning pairs.