Expand description
§Рендеринг текста. 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§
- Cached
Font - Шрифт с хранилищем глифов. A font with glyph cache.
- Face
Wrapper - Обёртка позволяющая работать со шрифтом. A wrapper that provides methods to work with fonts.
- Font
Owner - Хранилище для шрифта. A font owner.
- Glyph
Cache - Хранилище глифов. A glyph cache.
- Glyph
Frame - Contains glyph’s size, offset and advance width.
- Outlined
Glyph - Глиф с контурной основой. Glyph based on an outline.
- RawGlyph
- Немасштабированный глиф. An unscaled glyph.
- Scale
- Scaled
Glyph - Мастабированный глиф. A scaled glyph.
- Text
Base - Основа для рендеринга текста.
- Textured
Glyph - Глиф с текстурой основой. Glyph based on a texture.
Traits§
- Font
- Типаж для определения шрифтов. A trait for defining fonts.
- RawGlyph
Cache - Типаж для определения хранилищ глифов.