[][src]Trait plotters::drawing::backend::DrawingBackend

pub trait DrawingBackend {
    type ErrorType: Error + Send + Sync;
    fn get_size(&self) -> (u32, u32);
fn ensure_prepared(
        &mut self
    ) -> Result<(), DrawingErrorKind<Self::ErrorType>>;
fn present(&mut self) -> Result<(), DrawingErrorKind<Self::ErrorType>>;
fn draw_pixel(
        &mut self,
        point: BackendCoord,
        color: &RGBAColor
    ) -> Result<(), DrawingErrorKind<Self::ErrorType>>; fn draw_line<S: BackendStyle>(
        &mut self,
        from: BackendCoord,
        to: BackendCoord,
        style: &S
    ) -> 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>> { ... }
fn draw_path<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>(
        &mut self,
        path: I,
        style: &S
    ) -> Result<(), DrawingErrorKind<Self::ErrorType>> { ... }
fn draw_circle<S: BackendStyle>(
        &mut self,
        center: BackendCoord,
        radius: u32,
        style: &S,
        fill: bool
    ) -> Result<(), DrawingErrorKind<Self::ErrorType>> { ... }
fn draw_text<'a>(
        &mut self,
        text: &str,
        font: &FontDesc<'a>,
        pos: BackendCoord,
        color: &RGBAColor
    ) -> Result<(), DrawingErrorKind<Self::ErrorType>> { ... } }

The drawing backend trait, which implemenets the low-level drawing APIs. This trait has a set of default implementation. And the minimal requirement of implementing a drawing backend is implementing the draw_pixel function.

If the drawing backend supports vector graphics, the other drawing APIs should be overrided by the backend specific implementation. Otherwise, the default implementation will use the pixel-based approach to draw other types of low-level shapes.

Associated Types

type ErrorType: Error + Send + Sync

The error type reported by the backend

Loading content...

Required methods

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

Get the dimension of the drawing backend in pixel

fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Ensure the backend is ready to draw

fn present(&mut self) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Finialize 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.

fn draw_pixel(
    &mut self,
    point: BackendCoord,
    color: &RGBAColor
) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Draw a pixel on the drawing backend

  • point: The backend pixel-based coordinate to draw
  • color: The color of the pixel
Loading content...

Provided methods

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

Draw a line on the drawing backend

  • from: The start point of the line
  • to: The end point of the line
  • style: The style of the line

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

  • upper_left: The coordinate of the upper-left corner of the rect
  • bottom_right: The coordinate of the bottom-right corner of the rect
  • style: The style
  • fill: If the rectangle should be filled

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

  • path: The iterator of key points of the path
  • style: The style of the path

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

  • center: The center coordinate of the circle
  • radius: The radius of the circle
  • style: The style of the shape
  • fill: If the circle should be filled

fn draw_text<'a>(
    &mut self,
    text: &str,
    font: &FontDesc<'a>,
    pos: BackendCoord,
    color: &RGBAColor
) -> Result<(), DrawingErrorKind<Self::ErrorType>>

Draw a text on the drawing backend

  • text: The text to draw
  • font: The description of the font
  • pos : The position backend
  • color: The color of the text
Loading content...

Implementors

impl DrawingBackend for CanvasBackend[src]

type ErrorType = CanvasError

Loading content...