wgpu-text -это обертка над glyph-brush для быстрого и простого текстового рендеринга с помощью wgpu . Он поддерживает .otf и .ttf шрифты.

Этот проект был вдохновлен и похож на wgpu_glyph , но имеет дополнительные функции и более прост. Кроме того, нет необходимости включать глифную кишку в ваш проект.
Поскольку ящик глифтов реэкспортируется и сильно зависит от того, от этого рекомендуется пройти через разделы документы и примеры раздела для лучшего понимания управления и добавления текста.
Добавьте следующее в свой файл Cargo.toml :
[ dependencies ]
wgpu_text = " 0.9.1 " use wgpu_text :: { glyph_brush :: { Section as TextSection , Text } , BrushBuilder , TextBrush } ;
let brush = BrushBuilder :: using_font_bytes ( font ) . unwrap ( )
/* .initial_cache_size((16_384, 16_384))) */ // use this to avoid resizing cache texture
. build ( & device , config . width , config . height , config . format ) ;
// Directly implemented from glyph_brush.
let section = TextSection :: default ( ) . add_text ( Text :: new ( "Hello World" ) ) ;
// on window resize:
brush . resize_view ( config . width as f32 , config . height as f32 , & queue ) ;
// window event loop:
winit :: event :: Event :: RedrawRequested ( _ ) => {
// Before are created Encoder and frame TextureView.
// Crashes if inner cache exceeds limits.
brush . queue ( & device , & queue , [ & section , .. . ] ) . unwrap ( ) ;
{
let mut rpass = encoder . begin_render_pass ( .. . ) ;
brush . draw ( & mut rpass ) ;
}
queue . submit ( [ encoder . finish ( ) ] ) ;
frame . present ( ) ;
} Для более подробных примеров просмотрите примеры.
cargo run --example <example-name> Запустите примеры с помощью --release точной производительности.
Помимо базовых текстовых рендеринга и функций глифных пучков , некоторые функции добавляют настройку:
Все виды вкладов приветствуются.