
pub mod canvas_state;
pub mod canvas_frame;
pub mod shader;
pub mod canvas_text;
pub mod canvas_buffer;



pub trait Handle {
    fn get_handle(&self) -> u32;
}


#[derive(Clone, Debug, Default, PartialEq, Eq, Hash)]
pub struct CanvasTextureHandle {
    pub handle: u32
}

#[derive(Clone, Debug, Default, PartialEq, Eq, Hash)]
pub struct CanvasImageHandle {
    pub handle: u32
}

#[derive(Clone, Debug, Default, PartialEq, Eq, Hash)]
pub struct CanvasShaderHandle {
    pub handle: u32
}

/// Typed wrapper for a u32 handle
#[derive(Clone, Debug, Default, PartialEq, Eq, Hash)]
pub struct CompiledGraphicsPipelineHandle {
    pub handle: u32
}

#[derive(Clone, Debug, Default, PartialEq, Eq, Hash)]
pub struct CompuBufferHandle {
    pub handle: u32,
}
