pub struct CanvasBackend { /* private fields */ }
Expand description
The backend that is drawing on the HTML canvas TODO: Support double buffering
Implementations§
Source§impl CanvasBackend
impl CanvasBackend
Sourcepub fn new(elem_id: &str) -> Option<Self>
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
Sourcepub fn with_canvas_object(canvas: HtmlCanvasElement) -> Option<Self>
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
impl DrawingBackend for CanvasBackend
Source§fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind<CanvasError>>
fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind<CanvasError>>
Ensure the backend is ready to draw
Source§fn present(&mut self) -> Result<(), DrawingErrorKind<CanvasError>>
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>>
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>>
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>>
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>>
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
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>>
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>>
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,
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
Auto Trait Implementations§
impl Freeze for CanvasBackend
impl RefUnwindSafe for CanvasBackend
impl !Send for CanvasBackend
impl !Sync for CanvasBackend
impl Unpin for CanvasBackend
impl UnwindSafe for CanvasBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more