pub trait Renderer {
fn edge_antialias(&self) -> bool;
fn create_texture(
&mut self,
texture_type: TextureType,
width: usize,
height: usize,
flags: ImageFlags,
data: Option<&[u8]>
) -> Result<usize, Error>;
fn delete_texture(&mut self, img: usize) -> Result<(), Error>;
fn update_texture(
&mut self,
img: usize,
x: usize,
y: usize,
width: usize,
height: usize,
data: &[u8]
) -> Result<(), Error>;
fn texture_size(&self, img: usize) -> Result<(usize, usize), Error>;
fn viewport(
&mut self,
extent: Extent,
device_pixel_ratio: f32
) -> Result<(), Error>;
fn cancel(&mut self) -> Result<(), Error>;
fn flush(&mut self) -> Result<(), Error>;
fn fill(
&mut self,
paint: &Paint,
composite_operation: CompositeOperationState,
scissor: &Scissor,
fringe: f32,
bounds: Bounds,
paths: &[Path]
) -> Result<(), Error>;
fn stroke(
&mut self,
paint: &Paint,
composite_operation: CompositeOperationState,
scissor: &Scissor,
fringe: f32,
stroke_width: f32,
paths: &[Path]
) -> Result<(), Error>;
fn triangles(
&mut self,
paint: &Paint,
composite_operation: CompositeOperationState,
scissor: &Scissor,
vertexes: &[Vertex]
) -> Result<(), Error>;
}