Trait Layout

Source
pub trait Layout: Sync + Send {
    // Required methods
    fn create_graphics_pipeline(
        self: Arc<Self>,
        render_target: Arc<dyn RenderTarget>,
        shaders: &[Shader],
        attributes: &[Attribute],
    ) -> GraphicsResult<Arc<dyn Pipeline>>;
    fn create_compute_pipeline(
        self: Arc<Self>,
        shader: &Shader,
    ) -> GraphicsResult<Arc<dyn Pipeline>>;
    fn register_samplers(
        &self,
        samplers: &[Arc<GpuSamplerSet>],
    ) -> GraphicsResult<()>;
    fn add_buffer(
        &self,
        binding: u32,
        buffer: Arc<dyn Buffer>,
    ) -> GraphicsResult<()>;

    // Provided method
    fn as_vulkan(self: Arc<Self>) -> Option<Arc<VulkanLayout>> { ... }
}
Expand description

Contains resources used to mapping GPU memory in shaders

Required Methods§

Source

fn create_graphics_pipeline( self: Arc<Self>, render_target: Arc<dyn RenderTarget>, shaders: &[Shader], attributes: &[Attribute], ) -> GraphicsResult<Arc<dyn Pipeline>>

Creates graphics pipeline

Source

fn create_compute_pipeline( self: Arc<Self>, shader: &Shader, ) -> GraphicsResult<Arc<dyn Pipeline>>

Creates compute pipeline

Source

fn register_samplers( &self, samplers: &[Arc<GpuSamplerSet>], ) -> GraphicsResult<()>

Registers samplers in layout for reusing them. Samplers are removing automatically on zero hard references in Arc

Source

fn add_buffer( &self, binding: u32, buffer: Arc<dyn Buffer>, ) -> GraphicsResult<()>

Adds buffer

Provided Methods§

Source

fn as_vulkan(self: Arc<Self>) -> Option<Arc<VulkanLayout>>

Implementors§