pub trait Backend {
type RenderTarget: Target;
fn device_context(&self) -> &ID2D1DeviceContext;
fn d2d1_factory(&self) -> &ID2D1Factory1;
fn begin_draw(&self, target: &Self::RenderTarget);
fn end_draw(&self, target: &Self::RenderTarget);
}