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§
Sourcefn create_graphics_pipeline(
self: Arc<Self>,
render_target: Arc<dyn RenderTarget>,
shaders: &[Shader],
attributes: &[Attribute],
) -> GraphicsResult<Arc<dyn Pipeline>>
fn create_graphics_pipeline( self: Arc<Self>, render_target: Arc<dyn RenderTarget>, shaders: &[Shader], attributes: &[Attribute], ) -> GraphicsResult<Arc<dyn Pipeline>>
Creates graphics pipeline
Sourcefn create_compute_pipeline(
self: Arc<Self>,
shader: &Shader,
) -> GraphicsResult<Arc<dyn Pipeline>>
fn create_compute_pipeline( self: Arc<Self>, shader: &Shader, ) -> GraphicsResult<Arc<dyn Pipeline>>
Creates compute pipeline
Sourcefn register_samplers(
&self,
samplers: &[Arc<GpuSamplerSet>],
) -> GraphicsResult<()>
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
Sourcefn add_buffer(
&self,
binding: u32,
buffer: Arc<dyn Buffer>,
) -> GraphicsResult<()>
fn add_buffer( &self, binding: u32, buffer: Arc<dyn Buffer>, ) -> GraphicsResult<()>
Adds buffer