FontAtlasData

Struct FontAtlasData 

Source
pub struct FontAtlasData {
    pub font_name: CompactString,
    pub font_size: f32,
    pub max_halfwidth_base_glyph_id: u16,
    pub texture_dimensions: (i32, i32, i32),
    pub cell_size: (i32, i32),
    pub underline: LineDecoration,
    pub strikethrough: LineDecoration,
    pub glyphs: Vec<Glyph>,
    pub texture_data: Vec<u8>,
}
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.

Fields§

§font_name: CompactString

The name of the font

§font_size: f32

The font size in points

§max_halfwidth_base_glyph_id: u16

The number of single-cell (halfwidth) glyphs per layer, before fullwidth glyphs begin.

Fullwidth glyphs (e.g., CJK characters) are assigned IDs starting from this value, aligned to even boundaries. This allows the renderer to distinguish halfwidth from fullwidth glyphs by comparing against this threshold.

§texture_dimensions: (i32, i32, i32)

Width, height and depth of the texture in pixels

§cell_size: (i32, i32)

Width and height of each character cell

§underline: LineDecoration

Underline configuration

§strikethrough: LineDecoration

Strikethrough configuration

§glyphs: Vec<Glyph>

The glyphs in the font

§texture_data: Vec<u8>

The 3d texture data containing the font glyphs

Implementations§

Source§

impl FontAtlasData

Source

pub const PADDING: i32 = 1i32

Source

pub const CELLS_PER_SLICE: i32 = 32i32

Source

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

Deserializes a font atlas from binary format.

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

The deserialized font atlas or an error if deserialization fails

Source

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

Serializes the font atlas to binary format.

§Returns

A byte vector containing the serialized font atlas data

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) -> (i32, i32)

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

A tuple of (width, height) in pixels for each terminal cell

Trait Implementations§

Source§

impl Debug for FontAtlasData

Source§

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

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

impl Default for FontAtlasData

Source§

fn default() -> FontAtlasData

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> 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, 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.