[][src]Module cat_engine::text

Рендеринг текста. Text rendering. feature = "text_graphics", default_features

Как рендерятся символы:

  1. Первый вариант - с помощью обычных шрифтов:

    1. Создаётся контур символа
    2. Этот символ записывается в массив как изображение
    3. Изображение загружается в текстуру
    4. Текстура выводится на экран
  2. Второй вариант - с помощью хранилищ глифов

    1. Глиф достаётся из хранилища
    2. Он масштабируется
    3. Его текстура выводится на экран

How characters are rendering:

  1. The first way - with common fonts:

    1. Building glyph's outline
    2. Converting the glyph to an image
    3. Loading the image a texture
    4. Rendering the texture
  2. The second way - with glyph caches

    1. Taking a glyph from a glyph cache
    2. Scaling the glyph
    3. 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

Типаж для определения хранилищ глифов.