Skip to main content

FontAtlasData

Struct FontAtlasData 

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

Font atlas data for GPU-accelerated terminal rendering.

Contains a pre-rasterized font atlas stored as a 2D texture array, where each layer holds 32 glyphs in a 1×32 grid. The atlas includes multiple font styles (normal, bold, italic, bold+italic) and full Unicode support including emoji.

Implementations§

Source§

impl FontAtlasData

Source

pub const PADDING: i32 = 1

Padding in pixels around each glyph cell to prevent texture bleeding.

Source

pub const CELLS_PER_SLICE: i32 = 32

Number of glyph cells per texture layer.

Source

pub fn new( font_name: CompactString, font_size: f32, max_halfwidth_base_glyph_id: u16, texture_dimensions: (i32, i32, i32), cell_size: CellSize, underline: LineDecoration, strikethrough: LineDecoration, glyphs: Vec<Glyph>, texture_data: Vec<u8>, ) -> Self

Creates a new font atlas with the given parameters.

Source

pub fn font_name(&self) -> &str

Returns the font name.

Source

pub fn font_size(&self) -> f32

Returns the font size in points.

Source

pub fn max_halfwidth_base_glyph_id(&self) -> u16

Returns the maximum halfwidth base glyph ID.

Fullwidth glyphs are assigned IDs starting from this value.

Source

pub fn texture_dimensions(&self) -> (i32, i32, i32)

Returns the texture dimensions as (width, height, layers).

Source

pub fn underline(&self) -> LineDecoration

Returns the underline decoration configuration.

Source

pub fn strikethrough(&self) -> LineDecoration

Returns the strikethrough decoration configuration.

Source

pub fn glyphs(&self) -> &[Glyph]

Returns a slice of all glyphs in the atlas.

Source

pub fn texture_data(&self) -> &[u8]

Returns the raw texture data.

Source

pub fn into_glyphs(self) -> Vec<Glyph>

Consumes the atlas and returns its glyphs.

Source

pub fn from_binary(serialized: &[u8]) -> Result<Self, SerializationError>

Deserializes a font atlas from binary format.

§Arguments
  • serialized - Binary data containing the serialized font atlas
§Errors

Returns SerializationError if the binary data is malformed or cannot be deserialized.

§Returns

The deserialized font atlas or an error if deserialization fails

Source

pub fn to_binary(&self) -> Result<Vec<u8>, SerializationError>

Serializes the font atlas to binary format.

§Errors

Returns SerializationError if serialization fails (e.g., a string field exceeds 255 bytes).

§Returns

A byte vector containing the serialized font atlas data, or an error if serialization fails (e.g., a string field exceeds 255 bytes)

Source

pub fn terminal_size( &self, viewport_width: i32, viewport_height: i32, ) -> (i32, i32)

Calculates how many terminal columns and rows fit in the given viewport dimensions.

§Arguments
  • viewport_width - Width of the viewport in pixels
  • viewport_height - Height of the viewport in pixels
§Returns

A tuple of (columns, rows) that fit in the viewport

Source

pub fn cell_size(&self) -> CellSize

Returns the padded terminal cell size.

The cell size includes padding (1 pixel on each side, 2 pixels total per dimension) to prevent texture bleeding artifacts during GPU rendering.

§Returns

The cell dimensions in pixels

Trait Implementations§

Source§

impl Clone for FontAtlasData

Source§

fn clone(&self) -> FontAtlasData

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for FontAtlasData

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for FontAtlasData

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for FontAtlasData

Source§

fn eq(&self, other: &FontAtlasData) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for FontAtlasData

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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.