#[repr(C, align(4))]pub struct CellDynamic { /* private fields */ }
Expand description
Dynamic instance data for terminal cell appearance.
CellDynamic
contains the frequently-changing visual data for each terminal
cell, including the character glyph and colors. This data is updated whenever
cell content changes and is efficiently uploaded to the GPU using dynamic
buffer updates.
§Memory Layout
The 8-byte data array is packed as follows:
- Bytes 0-1: Glyph depth/layer index (u16, little-endian)
- Bytes 2-4: Foreground color RGB (3 bytes)
- Bytes 5-7: Background color RGB (3 bytes)
This compact layout minimizes GPU memory usage and allows efficient instanced rendering of the entire terminal grid.
§Color Format
Colors are stored as RGB bytes (no alpha channel in the instance data). The alpha channel is handled separately in the shader based on glyph transparency from the texture atlas.
§GPU Usage
Uploaded as instance attributes and accessed in both vertex and fragment shaders for character selection and color application.
§Buffer Upload
Uploaded to GPU using GL::DYNAMIC_DRAW
for efficient updates.
Implementations§
Source§impl CellDynamic
impl CellDynamic
pub fn new(glyph_id: u16, fg: u32, bg: u32) -> Self
Sourcepub fn style(&mut self, style_bits: u16)
pub fn style(&mut self, style_bits: u16)
Overwrites the current cell style bits with the provided style bits.
Sourcepub fn flip_colors(&mut self)
pub fn flip_colors(&mut self)
Sets the foreground color of the cell.
Sourcepub fn get_fg_color(&self) -> u32
pub fn get_fg_color(&self) -> u32
Returns foreground color as a packed RGB value.
Sourcepub fn get_bg_color(&self) -> u32
pub fn get_bg_color(&self) -> u32
Returns background color as a packed RGB value.
pub fn get_style(&self) -> u16
Trait Implementations§
Source§impl Clone for CellDynamic
impl Clone for CellDynamic
Source§fn clone(&self) -> CellDynamic
fn clone(&self) -> CellDynamic
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read more