Class TTextureFontData

Unit

Declaration

type TTextureFontData = class(TObject)

Description

Data for a 2D font initialized from a FreeType font file, like ttf.

Hierarchy

  • TObject
  • TTextureFontData

Overview

Nested Classes and Records

Public TGlyph = class(TObject)
Public TGlyphDictionary = class(specialize TDictionary<TUnicodeChar,TGlyph>)

Methods

Public constructor Create(const URL: string; const ASize: Integer; const AnAntiAliased: boolean; ACharacters: TUnicodeCharList = nil);
Public constructor CreateFromData(const AGlyphs: TGlyphDictionary; const AImage: TGrayscaleImage; const ASize: Integer; const AnAntiAliased: boolean);
Public destructor Destroy; override;
Public function Glyph(const C: TUnicodeChar; const AllowUsingFallbackGlyph: Boolean = true): TGlyph;
Public function LoadedGlyphs: TUnicodeCharList;
Public function TextWidth(const S: string): Integer;
Public function TextHeight(const S: string): Integer;
Public function TextHeightBase(const S: string): Integer;
Public function TextMove(const S: string): TVector2Integer;
Public function RowHeight: Integer;
Public function RowHeightBase: Integer;
Public function Descend: Integer;

Properties

Public property AntiAliased: boolean read FAntiAliased;
Public property Size: Integer read FSize;
Public property UseFallbackGlyph: Boolean read FUseFallbackGlyph write FUseFallbackGlyph default true;
Public property Image: TGrayscaleImage read FImage;

Description

Methods

Public constructor Create(const URL: string; const ASize: Integer; const AnAntiAliased: boolean; ACharacters: TUnicodeCharList = nil);

Create by reading a FreeType font file, like ttf.

Providing charaters list as Nil means that we only create glyphs for SimpleAsciiCharacters, which includes only the basic ASCII characters. The ACharacters instance does not become owned by this object, so remember to free it after calling this constructor.

Exceptions raised
EFreeTypeLibraryNotFound
If the freetype library is not installed.
Public constructor CreateFromData(const AGlyphs: TGlyphDictionary; const AImage: TGrayscaleImage; const ASize: Integer; const AnAntiAliased: boolean);

Create from a ready data for glyphs and image. Useful when font data is embedded inside the Pascal source code. AGlyphs instance, and AImage instance, become owned by this class.

Public destructor Destroy; override;
 
Public function Glyph(const C: TUnicodeChar; const AllowUsingFallbackGlyph: Boolean = true): TGlyph;

Read-only information about a glyph for given character.

When AllowUsingFallbackGlyph and UseFallbackGlyph (both are True by default) then we always return non-nil glyph. If the desired glyph was not really present, we make a warning (using WritelnWarning) and return a fallback glyph.

When not (AllowUsingFallbackGlyph and UseFallbackGlyph) then we return Nil for a missing glyph. Glyph may be missing because it was not requested at constructor, or because it doesn't exist in the font data.

Public function LoadedGlyphs: TUnicodeCharList;

List all characters for which glyphs are actually loaded. Glyph will answer non-nil exactly for these characters. The resulting list instance is owned by caller, so take care to free it.

Public function TextWidth(const S: string): Integer;
 
Public function TextHeight(const S: string): Integer;
 
Public function TextHeightBase(const S: string): Integer;

The height (above the baseline) of the text. This doesn't take into account height of the text below the baseline (for example letter "y" has the tail below the baseline in most fonts).

Public function TextMove(const S: string): TVector2Integer;
 
Public function RowHeight: Integer;

Height of a row of text in this font. This may be calculated as simply TextHeight('Wy') for most normal fonts.

Public function RowHeightBase: Integer;

Height (above the baseline) of a row of text in this font. Similar to TextHeightBase and TextHeight, note that RowHeightBase is generally smaller than RowHeight, because RowHeightBase doesn't care how low the letter may go below the baseline.

Public function Descend: Integer;

How low the text may go below the baseline.

Properties

Public property AntiAliased: boolean read FAntiAliased;
 
Public property Size: Integer read FSize;
 
Public property UseFallbackGlyph: Boolean read FUseFallbackGlyph write FUseFallbackGlyph default true;

When a glyph (picture of a particular character) in a font doesn't exist, by default we make a warning (using WritelnWarning) and use a fallback glyph, like "?". This lets user know that some character is there.

Set this to False to just silently omit a missing glyph. The Glyph method will just return (silently) Nil in this case.

Public property Image: TGrayscaleImage read FImage;
 

Generated by PasDoc 0.15.0.