Typeface

Low-level interface for drawing text. Represents a single typeface.

Unlike the rest of Fluid, Typeface uses screen-space dots directly, instead of fixed-size pixels. Consequently, DPI must be specified manually.

See: fluid.text.Text for an interface on a higher level.

Members

Aliases

defaultWordChunks
alias defaultWordChunks = .breakWords

Default word splitter used by measure/draw.

Functions

advance
Vector2 advance(dchar glyph)

Get advance vector for the given glyph. Uses dots, not pixels, as the unit.

dpi
deprecated Vector2 dpi(Vector2 scale)

Set font scale. This should be called at least once before drawing. Text sets DPI automatically.

dpi
Vector2 dpi()

Get curently set DPI.

draw
void draw(Image image, Rectangle rectangle, String text, ubyte paletteIndex, bool wrap)

Draw text within the given rectangle in the image.

drawLine
void drawLine(Image target, Vector2 penPosition, Rope text, ubyte paletteIndex)

Draw a line of text. Note: This API is unstable and might change over time.

drawTab
void drawTab(Vector2 penPosition)

Helper function for typeface implementations, providing a "draw" function for tabs, adjusting the pen position automatically.

glyphCount
long glyphCount()

List glyphs in the typeface.

indentWidth
inout(int) indentWidth()

Width of an indent/tab character, in dots. Text sets indentWidth automatically.

lineHeight
int lineHeight()

Get line height.

measure
Vector2 measure(Vector2 availableSpace, String text, bool wrap)
Vector2 measure(String text)

Measure space the given text would span. Uses dots as the unit.

opEquals
bool opEquals(Object object)

Instances of Typeface have to be comparable in a memory-safe manner.

penPosition
Vector2 penPosition()

Get initial pen position.

setSize
void setSize(Vector2 dpi, float size)

Set the font size. This should be called at least once before drawing. Text, if used, sets this automatically.

Static functions

defaultTypeface
defaultTypeface()

Get the default Fluid typeface.

eachWord
auto eachWord(TextRuler ruler, String text, bool wrap)

Helper function

lineSplitter
lineSplitter(Range text)
lineSplitterIndex
lineSplitterIndex(Range text)

Updated version of std.string.lineSplitter that includes trailing empty lines.

measure
void measure(TextRuler ruler, String text, bool wrap)

Measure space the given text would span. Uses dots as the unit.

Meta