Skip to main content

GlyphAtlas

Struct GlyphAtlas 

Source
pub struct GlyphAtlas { /* private fields */ }
Expand description

A cache of rasterised glyphs, packed into a single texture.

The GPU backends cannot draw text directly: WebGPU and WebGL2 have no text API. The atlas solves that by rasterising each glyph once into an offscreen canvas and then drawing the glyphs as textured quads. The canvas is handed to the GPU as a texture source, so no pixel read-back is ever needed.

The Canvas2D backend does not use the atlas at all — it has a real text API — but it shares the measurer, so the three backends lay text out identically.

Implementations§

Source§

impl GlyphAtlas

Inherent implementation of GlyphAtlas.

Source

pub fn new(width: u32, height: u32) -> Option<Self>

Creates an atlas of the given size, in pixels.

Returns None when the host has no DOM.

§Arguments
  • u32 - A 32-bit unsigned integer (u32).
§Returns
  • Option<Self> - Some(...) on success, None otherwise.
Source

pub fn canvas(&self) -> &HtmlCanvasElement

Returns the canvas the glyphs are rasterised into.

The GPU backends upload this canvas straight into a texture.

§Returns
  • &HtmlCanvasElement - A HtmlCanvasElement value.
Source

pub fn width(&self) -> u32

Returns the width of the atlas, in pixels.

§Returns
  • u32 - A 32-bit unsigned integer.
Source

pub fn height(&self) -> u32

Returns the height of the atlas, in pixels.

§Returns
  • u32 - A 32-bit unsigned integer.
Source

pub fn is_dirty(&self) -> bool

Returns true when the atlas changed since the last upload.

§Returns
  • bool - A boolean.
Source

pub fn mark_clean(&mut self)

Marks the atlas as uploaded.

Source

pub fn len(&self) -> usize

Returns the number of rasterised glyphs.

§Returns
  • usize - A non-negative integer.
Source

pub fn is_empty(&self) -> bool

Returns true when the atlas holds no glyphs.

§Returns
  • bool - A boolean.
Source

pub fn glyph(&mut self, character: char, font: &str) -> GlyphEntry

Returns the entry for the given character and font, rasterising it on first use.

§Arguments
  • char - A char parameter.
  • &str - Shared reference to a str.
§Returns
  • GlyphEntry - A GlyphEntry value.

Trait Implementations§

Source§

impl Clone for GlyphAtlas

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for GlyphAtlas

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more