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 |
Enums
| Error |
Functions
| draw |
Draws linear-filtered text. |
| draw_with_params |
More advanced variant of |