#[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§
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