[−][src]Module cat_engine::text
Рендеринг текста. Text rendering. feature = "text_graphics"
, default_features
Как рендерятся символы:
Первый вариант - с помощью обычных шрифтов:
- Создаётся контур символа
- Этот символ записывается в массив как изображение
- Изображение загружается в текстуру
- Текстура выводится на экран
Второй вариант - с помощью хранилищ глифов
- Глиф достаётся из хранилища
- Он масштабируется
- Его текстура выводится на экран
How characters are rendering:
The first way - with common fonts:
- Building glyph's outline
- Converting the glyph to an image
- Loading the image a texture
- Rendering the texture
The second way - with glyph caches
- Taking a glyph from a glyph cache
- Scaling the glyph
- Rendering it's texture
A simple example
let mut window=PagedWindow::new(|_,s|{ s.vsync=true; // Max size for glyph images s.graphics_base_settings.text.glyph_texture_size=[500,500]; }).unwrap(); let font=FontOwner::load("resources/font").unwrap(); let wfont=font.face_wrapper(); ... in the cycle: let base=TextBase::new([300f32,400f32],Scale::new(0.1,0.1),[1f32;4]); base.draw_str("HelloWorld$?",&wfont,p,g);
A glyph cache example
let mut window=PagedWindow::new(|_,s|{ s.vsync=true; }).unwrap(); let font=FontOwner::load("resources/font").unwrap(); let scale=Scale::new(0.4,0.4); // Creating a new glyph cache for the given characters let glyphs=GlyphCache::new_alphabet(&font,"HelloWorld?",scale,window.display()); ... in the cycle: let base=TextBase::new([300f32,400f32],Scale::new(0.1,0.1),[1f32;4]); base.draw_str_glyph_cache("HelloWorld?",&glyphs,p,g);
Re-exports
pub use ttf_parser; |
pub use ab_glyph_rasterizer; |
Structs
CachedFont | Шрифт с хранилищем глифов. A font with glyph cache. |
FaceWrapper | Обёртка позволяющая работать со шрифтом. A wrapper that provides methods to work with fonts. |
FontOwner | Хранилище для шрифта. A font owner. |
GlyphCache | Хранилище глифов. A glyph cache. |
GlyphFrame | Contains glyph's size, offset and advance width. |
OutlinedGlyph | Глиф с контурной основой. Glyph based on an outline. |
RawGlyph | Немасштабированный глиф. An unscaled glyph. |
Scale | |
ScaledGlyph | Мастабированный глиф. A scaled glyph. |
TextBase | Основа для рендеринга текста. |
TexturedGlyph | Глиф с текстурой основой. Glyph based on a texture. |
Traits
Font | Типаж для определения шрифтов. A trait for defining fonts. |
RawGlyphCache | Типаж для определения хранилищ глифов. |