Skip to main content

AnimatedKitty

Struct AnimatedKitty 

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

The animated kitty surface presenter: the first frame becomes the root frame of one image, placed once, and every later surface appends a frame composed onto the previous one plus the rectangles that changed. Playback runs in the terminal: loading mode plays the frames it holds at the gap pace and waits for more, so the wire is a buffer, jitter never reaches the screen, and motion happens at the compositor’s rate rather than the client’s. An unchanged frame writes nothing.

Frames accumulate terminal-side, so every 96 frames a fresh root frame (one whole compressed transmit) goes up under the alternate id, and then the finished reel stops and is freed.

Implementations§

Source§

impl AnimatedKitty

Source

pub fn new( base: u32, frames_per_second: u32, tile_side: u32, budget: usize, ) -> Self

A presenter handing out image ids from base upward, playing at frames_per_second, tiling changed rectangles at tile_side surface pixels. Past budget damaged rectangles one whole frame wins over hundreds of edits.

Source

pub fn repaint(&mut self)

Start a fresh reel on the next frame, for when the terminal may have lost what it was showing.

Source

pub fn free<W: Sink>(&mut self, out: &mut W) -> Result<()>

Free both reels and start a fresh one on the next frame.

Source

pub fn render_frame<W: Sink>( &mut self, out: &mut W, surface: &Surface, area: CellRect, ) -> Result<usize>

Write one frame’s data and return the bytes written.

Trait Implementations§

Source§

impl Debug for AnimatedKitty

Source§

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

Formats the value using the given formatter. Read more

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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.