Macro sierra::graphics_pipeline_info[][src]

macro_rules! graphics_pipeline_info {
    ($($field:ident : $value:expr),* $(,)?) => { ... };
    (@UNFOLD $builder:ident { $($stmts:stmt)* } { vertex_bindings: $vertex_bindings:expr $(, $field:ident : $value:expr)* } { $($rfield:ident : $rvalue:expr),* }) => { ... };
    (@UNFOLD $builder:ident { $($stmts:stmt)* } { vertex_attributes: $vertex_attributes:expr $(, $field:ident : $value:expr)* } { $($rfield:ident : $rvalue:expr),* }) => { ... };
    (@UNFOLD $builder:ident { $($stmts:stmt)* } { primitive_topology: $primitive_topology:expr $(, $field:ident : $value:expr)* } { $($rfield:ident : $rvalue:expr),* }) => { ... };
    (@UNFOLD $builder:ident { $($stmts:stmt)* } { primitive_restart_enable: $primitive_restart_enable:expr $(, $field:ident : $value:expr)* } { $($rfield:ident : $rvalue:expr),* }) => { ... };
    (@UNFOLD $builder:ident { $($stmts:stmt)* } { rasterizer: $rasterizer:expr $(, $field:ident : $value:expr)* } { $($rfield:ident : $rvalue:expr),* }) => { ... };
    (@UNFOLD $builder:ident { $($stmts:stmt)* } { subpass: $subpass:expr $(, $field:ident : $value:expr)* } { $($rfield:ident : $rvalue:expr),* }) => { ... };
    (@UNFOLD $builder:ident { $($stmts:stmt)* } { layout: $layout:expr $(, $field:ident : $value:expr)* } { $($rfield:ident : $rvalue:expr),* }) => { ... };
    (@UNFOLD $builder:ident { $($stmts:stmt)* } { render_pass: $render_pass:expr $(, $field:ident : $value:expr)* } { $($rfield:ident : $rvalue:expr),* }) => { ... };
    (@UNFOLD $builder:ident { $($stmts:stmt)* } { vertex_shader: $vertex_shader:expr $(, $field:ident : $value:expr)* } { $($rfield:ident : $rvalue:expr),* }) => { ... };
    (@UNFOLD $builder:ident { $($stmts:stmt)* } {} { $($rfield:ident : $rvalue:expr),* }) => { ... };
}

Convenient macro to build GraphicsPipelineInfo. Allows to skip fields when their default values are sufficient. The only required fields are:

  • vertex_shader
  • layout
  • render_pass Note that default primitive_topology is TriangleList.

Example

graphics_pipeline_info! {
    vertex_shader: Shader::new(vertex_shader.clone()),
    layout: pipeline_layout.clone(),
    render_pass: render_pass.clone(),
    rasterizer: Rasterizer::simple(
        Shader::new(fragment_shader.clone()),
        false,
    ),
}