pub trait Framebuffer {
type DepthSlot;
type ColorSlot;
// Required methods
fn bind(&mut self);
fn depth_slot(&mut self) -> &mut Self::DepthSlot;
fn color_slot(&mut self) -> &mut Self::ColorSlot;
fn viewport(&self) -> &Viewport;
}