Crate glium_text_rusttype [] [src]

This crate allows you to easily write text.

Usage:

// The `TextSystem` contains the shaders and elements used for text display.
let system = glium_text::TextSystem::new(&display);

// Creating a `FontTexture`, which a regular `Texture` which contains the font.
// Note that loading the systems fonts is not covered by this library.
let font = glium_text::FontTexture::new(
    &display,
    File::open("font.ttf").unwrap(),
    32,
    glium_text::FontTexture::ascii_character_list()
).unwrap();

// Creating a `TextDisplay` which contains the elements required to draw a specific sentence.
let text = glium_text::TextDisplay::new(&system, &font, "Hello world!");

// Finally, drawing the text is done like this:
let matrix = [[1.0, 0.0, 0.0, 0.0],
              [0.0, 1.0, 0.0, 0.0],
              [0.0, 0.0, 1.0, 0.0],
              [0.0, 0.0, 0.0, 1.0]];
glium_text::draw(&text, &system, &mut display.draw(), matrix, (1.0, 1.0, 0.0, 1.0));

FontTexture will rasterize exact characters it's told to. It can be passed anything that implements IntoIterator<char> trait. It is possible to use chained ranges with it like this: (0 .. 0x7f+1).chain(0x400 .. 0x4ff+1).filter_map(std::char::from_u32)

This will rasterize font with characters from "Basic Latin" and "Cyrillic" sets. Here is a complete list of ranges with description.

As of now, Rust doesn't provide a way to create inclusive ranges yet so thou shall add +1 to the outer bound.

Start End Description
0000 007F Basic Latin
0080 00FF C1 Controls and Latin-1 Supplement
0100 017F Latin Extended-A
0180 024F Latin Extended-B
0250 02AF IPA Extensions
02B0 02FF Spacing Modifier Letters
0300 036F Combining Diacritical Marks
0370 03FF Greek/Coptic
0400 04FF Cyrillic
0500 052F Cyrillic Supplement
0530 058F Armenian
0590 05FF Hebrew
0600 06FF Arabic
0700 074F Syriac
0780 07BF Thaana
0900 097F Devanagari
0980 09FF Bengali/Assamese
0A00 0A7F Gurmukhi
0A80 0AFF Gujarati
0B00 0B7F Oriya
0B80 0BFF Tamil
0C00 0C7F Telugu
0C80 0CFF Kannada
0D00 0DFF Malayalam
0D80 0DFF Sinhala
0E00 0E7F Thai
0E80 0EFF Lao
0F00 0FFF Tibetan
1000 109F Myanmar
10A0 10FF Georgian
1100 11FF Hangul Jamo
1200 137F Ethiopic
13A0 13FF Cherokee
1400 167F Unified Canadian Aboriginal Syllabics
1680 169F Ogham
16A0 16FF Runic
1700 171F Tagalog
1720 173F Hanunoo
1740 175F Buhid
1760 177F Tagbanwa
1780 17FF Khmer
1800 18AF Mongolian
1900 194F Limbu
1950 197F Tai Le
19E0 19FF Khmer Symbols
1D00 1D7F Phonetic Extensions
1E00 1EFF Latin Extended Additional
1F00 1FFF Greek Extended
2000 206F General Punctuation
2070 209F Superscripts and Subscripts
20A0 20CF Currency Symbols
20D0 20FF Combining Diacritical Marks for Symbols
2100 214F Letterlike Symbols
2150 218F Number Forms
2190 21FF Arrows
2200 22FF Mathematical Operators
2300 23FF Miscellaneous Technical
2400 243F Control Pictures
2440 245F Optical Character Recognition
2460 24FF Enclosed Alphanumerics
2500 257F Box Drawing
2580 259F Block Elements
25A0 25FF Geometric Shapes
2600 26FF Miscellaneous Symbols
2700 27BF Dingbats
27C0 27EF Miscellaneous Mathematical Symbols-A
27F0 27FF Supplemental Arrows-A
2800 28FF Braille Patterns
2900 297F Supplemental Arrows-B
2980 29FF Miscellaneous Mathematical Symbols-B
2A00 2AFF Supplemental Mathematical Operators
2B00 2BFF Miscellaneous Symbols and Arrows
2E80 2EFF CJK Radicals Supplement
2F00 2FDF Kangxi Radicals
2FF0 2FFF Ideographic Description Characters
3000 303F CJK Symbols and Punctuation
3040 309F Hiragana
30A0 30FF Katakana
3100 312F Bopomofo
3130 318F Hangul Compatibility Jamo
3190 319F Kanbun (Kunten)
31A0 31BF Bopomofo Extended
31F0 31FF Katakana Phonetic Extensions
3200 32FF Enclosed CJK Letters and Months
3300 33FF CJK Compatibility
3400 4DBF CJK Unified Ideographs Extension A
4DC0 4DFF Yijing Hexagram Symbols
4E00 9FAF CJK Unified Ideographs
A000 A48F Yi Syllables
A490 A4CF Yi Radicals
AC00 D7AF Hangul Syllables
D800 DBFF High Surrogate Area
DC00 DFFF Low Surrogate Area
E000 F8FF Private Use Area
F900 FAFF CJK Compatibility Ideographs
FB00 FB4F Alphabetic Presentation Forms
FB50 FDFF Arabic Presentation Forms-A
FE00 FE0F Variation Selectors
FE20 FE2F Combining Half Marks
FE30 FE4F CJK Compatibility Forms
FE50 FE6F Small Form Variants
FE70 FEFF Arabic Presentation Forms-B
FF00 FFEF Halfwidth and Fullwidth Forms
FFF0 FFFF Specials
10000 1007F Linear B Syllabary
10080 100FF Linear B Ideograms
10100 1013F Aegean Numbers
10300 1032F Old Italic
10330 1034F Gothic
10380 1039F Ugaritic
10400 1044F Deseret
10450 1047F Shavian
10480 104AF Osmanya
10800 1083F Cypriot Syllabary
1D000 1D0FF Byzantine Musical Symbols
1D100 1D1FF Musical Symbols
1D300 1D35F Tai Xuan Jing Symbols
1D400 1D7FF Mathematical Alphanumeric Symbols
20000 2A6DF CJK Unified Ideographs Extension B
2F800 2FA1F CJK Compatibility Ideographs Supplement
E0000 E007F Tags
E0100 E01EF Variation Selectors Supplement

Structs

FontTexture

Texture which contains the characters of the font.

TextDisplay

Object that will allow you to draw a text.

TextSystem

Object that contains the elements shared by all TextDisplay objects.

Enums

Error

Functions

draw

Draws linear-filtered text.

draw_with_params

More advanced variant of draw which also takes sampler behavior and draw parameters.