Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Drawing text

There are 3 types of text drawing functions:

  • draw_text_*: for basic text drawing.
  • draw_multiline_text_*: for properly drawing text with newlines in it.
  • draw_wrapped_text_*: for drawing text with a max width, that wraps when it gets to the edge.

There are also equivalent functions for measuring the area text will take up when drawn. These shouldn’t be too slow as a cache is maintained internally.

There are functions for drawing text quickly, which only take the text and position, and draw with the default monospaced font. You can use draw_text_ex and draw_text_custom to specify the font used, text color, and more.

Fonts

Fonts can be loaded with create_ttf_font.

SGE comes with JetBrains Mono as it’s default font, and when the extra_fonts feature is enabled (by default), also 5 variants of the Inter typeface, for regular, bold, italic, bold italic, and display. These are availible as the constants MONO, SANS, SANS_BOLD, SANS_ITALIC, SANS_BOLD_ITALIC, and SANS_DISPLAY.

If you experience stuttering when drawing text, you can pre-populate the cache of letters.

#![allow(unused)]
fn main() {
font_ref.populate_font_cache(&Font::latin_character_list(), 24);
}

You can also specify the filtering methods of the font texture.

#![allow(unused)]
fn main() {
font.use_linear_filtering(); 
font.use_nearest_filtering();
}

Typeface

The Typeface struct groups fonts of the same typeface together so that they can be used for things like rich text.

Text in action


See: /examples/text.rs for an example

See: text module documentation for more detail.