Struct Renderer

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

This is the core of the library. It will send commands to the rendering server to print on screen.

§Usage

// get the renderer
let rdr = Renderer::get();
 
...
 
// start drawing on a frame
rdr.begin_draw();
 
... // use drawing functions (eg. draw_rect, draw_point...)
 
rdr.end_draw(); // this pushes the frame to the screen
 
...
 
Renderer::exit(); // to quit the program and reset terminal settings

Screen coordinates start in the top left at (0, 0)

Implementations§

Source§

impl Renderer

Source

pub fn exit()

Exits the program and reset terminal setttings (should be called before the program ends).

Source

pub fn get() -> &'static mut Renderer

Returns the Renderer instance.

Source

pub fn get_size() -> Vec2

Returns the screen dimension.

let size = Renderer::get_size();
 
size.x // width of the screen
size.y // height of the screen
Source

pub fn begin_draw(&mut self)

Starts drawing a frame.

Will panic if called twice before an end_draw

Source

pub fn end_draw(&mut self)

Ends drawing a frame and pushes it to the screen.

Source

pub fn clear(&mut self, c: Color)

Clears the screen (color and text).

Source

pub fn clear_color(&mut self, c: Color)

Sets all the pixels’ color in the screen to c (does not clear text).

Source

pub fn clear_text(&mut self)

Removes all text from the screen.

Source

pub fn draw_line<A, B>(&mut self, p1: A, p2: B, c: Color)
where A: AsRef<Vec2>, B: AsRef<Vec2>,

Draws a line of color c between p1 and p2.

Source

pub fn draw_rect<A, B>(&mut self, p: A, s: B, c: Color)
where A: AsRef<Vec2>, B: AsRef<Vec2>,

Draws a rectangle of color c and of size s. p is the coordinate of the top left corner of the rectangle.

Source

pub fn draw_rect_boundary<A, B>(&mut self, p: A, s: B, c: Color)
where A: AsRef<Vec2>, B: AsRef<Vec2>,

Same as draw_rect but draws only the four sides of the rectangle.

Source

pub fn draw_ellipse_boundary<A, B>(&mut self, c: A, s: B, col: Color)
where A: AsRef<Vec2>, B: AsRef<Vec2>,

Draws an ellipse of color col. c is the center of the ellipse and s is the size of the rectangle in which the ellipse is inscribed.

Source

pub fn draw_point<A>(&mut self, p: A, c: Color)
where A: AsRef<Vec2>,

Sets the color of the pixel at p to c.

Source

pub fn draw_image<A, B, C>( &mut self, img: Arc<Mutex<Image>>, pos: A, size: B, offset: C, alpha: Option<Color>, )
where A: AsRef<Vec2>, B: AsRef<Vec2>, C: AsRef<Vec2>,

Draws an image at position pos.

Negative size results in flipped image. Alpha is used to ignore a given color while drawing.

Source

pub fn draw_whole_image_alpha<A>( &mut self, img: Arc<Mutex<Image>>, pos: A, alpha: Color, )
where A: AsRef<Vec2>,

Draws the whole image at pos, ignoring the color alpha.

Equivalent to:

rdr.image(img, pos, img.size(), Vec2::ZERO, Some(alpha));
Source

pub fn draw_whole_image<A>(&mut self, img: Arc<Mutex<Image>>, pos: A)
where A: AsRef<Vec2>,

Draws the whole image at pos.

Equivalent to:

rdr.image(img, pos, img.size(), Vec2::ZERO, None);
Source

pub fn print_text_raw<A>( &mut self, text: &String, pos: A, background_mode: CharBackgroundMode, foreground_mode: CharForegroundMode, )
where A: AsRef<Vec2>,

Source

pub fn print_blended_text_raw<A>(&mut self, text: &String, pos: A)
where A: AsRef<Vec2>,

Source

pub fn print_colored_text_raw<A>( &mut self, text: &String, pos: A, background_color: Color, foreground_color: Color, )
where A: AsRef<Vec2>,

Source

pub fn ring_bell(&self)

Rings the terminal bell. Can only be called during the creation of a frame

Technical note: the bell will ring when calling end_draw

Trait Implementations§

Source§

impl Drop for Renderer

Source§

fn drop(&mut self)

When the renderer singleton is droped, reset terminal settings and exit.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
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, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
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> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
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> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
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, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. 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, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.