image rendering and visual selection
This commit is contained in:
+13
-10
@@ -13,7 +13,8 @@ pub struct PaneId(pub u64);
|
||||
impl PaneId {
|
||||
/// Generate a new unique pane ID.
|
||||
pub fn new() -> Self {
|
||||
static COUNTER: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0);
|
||||
static COUNTER: std::sync::atomic::AtomicU64 =
|
||||
std::sync::atomic::AtomicU64::new(0);
|
||||
Self(COUNTER.fetch_add(1, std::sync::atomic::Ordering::SeqCst))
|
||||
}
|
||||
}
|
||||
@@ -56,19 +57,19 @@ pub const COLORED_GLYPH_FLAG: u32 = 0x80000000;
|
||||
/// Pre-rendered cursor sprite indices (like Kitty's cursor_shape_map).
|
||||
/// These sprites are created at fixed indices in the sprite array after initialization.
|
||||
/// Index 0 is reserved for "no glyph" (empty cell).
|
||||
pub const CURSOR_SPRITE_BEAM: u32 = 1; // Bar/beam cursor (vertical line on left)
|
||||
pub const CURSOR_SPRITE_BEAM: u32 = 1; // Bar/beam cursor (vertical line on left)
|
||||
pub const CURSOR_SPRITE_UNDERLINE: u32 = 2; // Underline cursor (horizontal line at bottom)
|
||||
pub const CURSOR_SPRITE_HOLLOW: u32 = 3; // Hollow/unfocused cursor (outline rectangle)
|
||||
pub const CURSOR_SPRITE_HOLLOW: u32 = 3; // Hollow/unfocused cursor (outline rectangle)
|
||||
|
||||
/// Pre-rendered decoration sprite indices (like Kitty's decoration sprites).
|
||||
/// These are created after cursor sprites and used for text decorations.
|
||||
/// The shader uses these to render underlines, strikethrough, etc.
|
||||
pub const DECORATION_SPRITE_STRIKETHROUGH: u32 = 4; // Strikethrough line
|
||||
pub const DECORATION_SPRITE_UNDERLINE: u32 = 5; // Single underline
|
||||
pub const DECORATION_SPRITE_STRIKETHROUGH: u32 = 4; // Strikethrough line
|
||||
pub const DECORATION_SPRITE_UNDERLINE: u32 = 5; // Single underline
|
||||
pub const DECORATION_SPRITE_DOUBLE_UNDERLINE: u32 = 6; // Double underline
|
||||
pub const DECORATION_SPRITE_UNDERCURL: u32 = 7; // Wavy/curly underline
|
||||
pub const DECORATION_SPRITE_DOTTED: u32 = 8; // Dotted underline
|
||||
pub const DECORATION_SPRITE_DASHED: u32 = 9; // Dashed underline
|
||||
pub const DECORATION_SPRITE_UNDERCURL: u32 = 7; // Wavy/curly underline
|
||||
pub const DECORATION_SPRITE_DOTTED: u32 = 8; // Dotted underline
|
||||
pub const DECORATION_SPRITE_DASHED: u32 = 9; // Dashed underline
|
||||
|
||||
/// First available sprite index for regular glyphs (after reserved cursor and decoration sprites)
|
||||
pub const FIRST_GLYPH_SPRITE: u32 = 10;
|
||||
@@ -97,7 +98,8 @@ impl GlyphVertex {
|
||||
|
||||
pub fn desc() -> wgpu::VertexBufferLayout<'static> {
|
||||
wgpu::VertexBufferLayout {
|
||||
array_stride: std::mem::size_of::<GlyphVertex>() as wgpu::BufferAddress,
|
||||
array_stride: std::mem::size_of::<GlyphVertex>()
|
||||
as wgpu::BufferAddress,
|
||||
step_mode: wgpu::VertexStepMode::Vertex,
|
||||
attributes: &Self::ATTRIBS,
|
||||
}
|
||||
@@ -238,7 +240,7 @@ pub struct FontCellMetrics {
|
||||
/// works in pure NDC space without needing pixel offsets.
|
||||
/// Cell dimensions are integers like Kitty for pixel-perfect rendering.
|
||||
#[repr(C)]
|
||||
#[derive(Copy, Clone, Debug, Default, Pod, Zeroable)]
|
||||
#[derive(Copy, Clone, Debug, Pod, Zeroable)]
|
||||
pub struct GridParams {
|
||||
pub cols: u32,
|
||||
pub rows: u32,
|
||||
@@ -253,6 +255,7 @@ pub struct GridParams {
|
||||
pub selection_start_row: i32,
|
||||
pub selection_end_col: i32,
|
||||
pub selection_end_row: i32,
|
||||
pub selection_row_max_col: [i32; 256],
|
||||
}
|
||||
|
||||
/// GPU quad instance for instanced rectangle rendering.
|
||||
|
||||
Reference in New Issue
Block a user