pub trait Drawer {
// Required methods
fn resize(&mut self, viewport: Vec2, dpi: f32);
fn begin_frame(&mut self);
fn end_frame(&mut self);
fn clear(&mut self);
fn draw_rect(&mut self, spec: &RectBlueprint);
fn draw_text(&mut self, spec: &TextBlueprint<'_>);
fn draw_image(&mut self, rect: &Rect, image: &ImageSource);
}