pub trait TextRender {
// Required methods
fn prepare(&mut self, text: &Text) -> TextBuffer;
fn draw_text(&mut self, buffer: &mut TextBuffer, position: Vec2);
fn render(&mut self, render_pass: &mut RenderPass<'_>);
fn measure_text(&self, text: &Text) -> (f32, f32);
fn set_viewport(&mut self, viewport: Viewport);
fn buffer_bounds(&self, buffer: &TextBuffer) -> (f32, f32);
}Expand description
Common trait for text renderers.
This trait defines the interface shared by all text renderer implementations. Use this trait for generic code that needs to work with any text renderer.
§Example
ⓘ
fn render_ui<R: TextRender>(renderer: &mut R, render_pass: &mut wgpu::RenderPass) {
let text = Text::new("Hello").size(16.0);
let mut buffer = renderer.prepare(&text);
renderer.draw_text(&mut buffer, Vec2::new(10.0, 10.0));
renderer.render(render_pass);
}Required Methods§
Sourcefn prepare(&mut self, text: &Text) -> TextBuffer
fn prepare(&mut self, text: &Text) -> TextBuffer
Prepare text for rendering.
Returns a TextBuffer that can be cached and reused for rendering
the same text multiple times.
Sourcefn draw_text(&mut self, buffer: &mut TextBuffer, position: Vec2)
fn draw_text(&mut self, buffer: &mut TextBuffer, position: Vec2)
Draw text at a position.
The position represents the top-left corner of the text’s bounding box.
Sourcefn render(&mut self, render_pass: &mut RenderPass<'_>)
fn render(&mut self, render_pass: &mut RenderPass<'_>)
Render all queued text to the given render pass.
Sourcefn measure_text(&self, text: &Text) -> (f32, f32)
fn measure_text(&self, text: &Text) -> (f32, f32)
Measure text dimensions without rendering.
Sourcefn set_viewport(&mut self, viewport: Viewport)
fn set_viewport(&mut self, viewport: Viewport)
Set the viewport for rendering.
Sourcefn buffer_bounds(&self, buffer: &TextBuffer) -> (f32, f32)
fn buffer_bounds(&self, buffer: &TextBuffer) -> (f32, f32)
Get the logical (unscaled) bounds of a prepared text buffer.