Skip to main content

GraphicsRenderer

Struct GraphicsRenderer 

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

Graphics renderer for sixel images

Implementations§

Source§

impl GraphicsRenderer

Source

pub fn new( device: &Device, surface_format: TextureFormat, cell_width: f32, cell_height: f32, window_padding: f32, scaling_mode: ImageScalingMode, preserve_aspect_ratio: bool, ) -> Result<Self>

Create a new graphics renderer

Source

pub fn get_or_create_texture( &mut self, device: &Device, queue: &Queue, id: u64, rgba_data: &[u8], width: u32, height: u32, ) -> Result<()>

Create or get a cached texture for a sixel graphic

§Arguments
  • device - WGPU device for creating textures
  • queue - WGPU queue for writing texture data
  • id - Unique identifier for this sixel graphic
  • rgba_data - RGBA pixel data (width * height * 4 bytes)
  • width - Image width in pixels
  • height - Image height in pixels
Source

pub fn render( &mut self, device: &Device, queue: &Queue, render_pass: &mut RenderPass<'_>, graphics: &[(u64, isize, usize, usize, usize, f32, usize)], window_width: f32, window_height: f32, ) -> Result<()>

Render sixel graphics

§Arguments
  • device - WGPU device for creating buffers
  • queue - WGPU queue for writing buffer data
  • render_pass - Active render pass to render into
  • graphics - Slice of sixel graphics to render with their positions Each tuple contains: (id, row, col, width_in_cells, height_in_cells, alpha, scroll_offset_rows)
  • window_width - Window width in pixels
  • window_height - Window height in pixels
Source

pub fn render_for_pane( &mut self, device: &Device, queue: &Queue, render_pass: &mut RenderPass<'_>, graphics: &[(u64, isize, usize, usize, usize, f32, usize)], window_width: f32, window_height: f32, pane_origin_x: f32, pane_origin_y: f32, ) -> Result<()>

Render sixel graphics for a specific pane using explicit origin coordinates.

Identical to [render] but uses pane_origin_x/pane_origin_y for positioning instead of the global window_padding + content_offset values, so graphics are placed relative to the pane rather than the full window.

§Arguments
  • device - WGPU device for creating buffers
  • queue - WGPU queue for writing buffer data
  • render_pass - Active render pass to render into
  • graphics - Slice of sixel graphics to render with their positions
  • window_width - Window width in pixels
  • window_height - Window height in pixels
  • pane_origin_x - X pixel coordinate of the pane’s content origin
  • pane_origin_y - Y pixel coordinate of the pane’s content origin
Source

pub fn remove_texture(&mut self, id: u64)

Remove a texture from the cache

Source

pub fn clear_cache(&mut self)

Clear all cached textures

Source

pub fn cache_size(&self) -> usize

Get the number of cached textures

Source

pub fn update_cell_dimensions( &mut self, cell_width: f32, cell_height: f32, window_padding: f32, )

Update cell dimensions (called when window is resized)

Source

pub fn set_content_offset_y(&mut self, offset: f32)

Set vertical content offset (e.g., tab bar height)

Source

pub fn set_content_offset_x(&mut self, offset: f32)

Set horizontal content offset (e.g., tab bar on left)

Source

pub fn set_preserve_aspect_ratio(&mut self, preserve: bool)

Update the global aspect ratio preservation setting.

Source

pub fn update_scaling_mode( &mut self, device: &Device, scaling_mode: ImageScalingMode, )

Update the texture scaling mode (nearest vs linear filtering).

This recreates the sampler and invalidates all cached textures since their bind groups reference the old sampler.

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> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,