Struct CanvasBackend

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

The backend that is drawing on the HTML canvas TODO: Support double buffering

Implementations§

Source§

impl CanvasBackend

Source

pub fn new(elem_id: &str) -> Option<Self>

Create a new drawing backend backed with an HTML5 canvas object with given Id

  • elem_id The element id for the canvas
  • Return either some drawing backend has been created, or none in error case
Source

pub fn with_canvas_object(canvas: HtmlCanvasElement) -> Option<Self>

Create a new drawing backend backend with a HTML5 canvas object passed in

  • canvas The object we want to use as backend
  • Return either the drawing backend or None for error

Trait Implementations§

Source§

impl DrawingBackend for CanvasBackend

Source§

type ErrorType = CanvasError

The error type reported by the backend
Source§

fn get_size(&self) -> (u32, u32)

Get the dimension of the drawing backend in pixels
Source§

fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind<CanvasError>>

Ensure the backend is ready to draw
Source§

fn present(&mut self) -> Result<(), DrawingErrorKind<CanvasError>>

Finalize the drawing step and present all the changes. This is used as the real-time rendering support. The backend may implement in the following way, when ensure_prepared is called it checks if it needs a fresh buffer and present is called rendering all the pending changes on the screen.
Source§

fn draw_pixel( &mut self, point: BackendCoord, style: BackendColor, ) -> Result<(), DrawingErrorKind<CanvasError>>

Draw a pixel on the drawing backend Read more
Source§

fn draw_line<S: BackendStyle>( &mut self, from: BackendCoord, to: BackendCoord, style: &S, ) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Draw a line on the drawing backend Read more
Source§

fn draw_rect<S: BackendStyle>( &mut self, upper_left: BackendCoord, bottom_right: BackendCoord, style: &S, fill: bool, ) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Draw a rectangle on the drawing backend Read more
Source§

fn draw_path<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>( &mut self, path: I, style: &S, ) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Draw a path on the drawing backend Read more
Source§

fn fill_polygon<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>( &mut self, path: I, style: &S, ) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Source§

fn draw_circle<S: BackendStyle>( &mut self, center: BackendCoord, radius: u32, style: &S, fill: bool, ) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Draw a circle on the drawing backend Read more
Source§

fn draw_text<S: BackendTextStyle>( &mut self, text: &str, style: &S, pos: BackendCoord, ) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Draw a text on the drawing backend Read more
Source§

fn estimate_text_size<TStyle>( &self, text: &str, style: &TStyle, ) -> Result<(u32, u32), DrawingErrorKind<Self::ErrorType>>
where TStyle: BackendTextStyle,

Estimate the size of the horizontal text if rendered on this backend. This is important because some of the backend may not have font ability. Thus this allows those backend reports proper value rather than ask the font rasterizer for that. Read more
Source§

fn blit_bitmap( &mut self, pos: (i32, i32), _: (u32, u32), src: &[u8], ) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Blit a bitmap on to the backend. 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 = 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.