Struct vulkano::render_pass::RenderPass [−][src]
pub struct RenderPass { /* fields omitted */ }
Expand description
An object representing the discrete steps in which rendering is done.
A render pass in Vulkan is made up of three parts:
- A list of attachments, which are image views that are inputs, outputs or intermediate stages in the rendering process.
- One or more subpasses, which are the steps in which the rendering process, takes place, and the attachments that are used for each step.
- Dependencies, which describe how the input and output data of each subpass is to be passed from one subpass to the next.
In order to create a render pass, you must create a RenderPassDesc
object that describes the
render pass, then pass it to RenderPass::new
.
use vulkano::render_pass::RenderPass;
use vulkano::render_pass::RenderPassDesc;
let desc = RenderPassDesc::empty();
let render_pass = RenderPass::new(device.clone(), desc).unwrap();
This example creates a render pass with no attachment and one single subpass that doesn’t draw on anything. While it’s sometimes useful, most of the time it’s not what you want.
The easiest way to create a “real” render pass is to use the single_pass_renderpass!
macro.
use vulkano::format::Format;
let render_pass = single_pass_renderpass!(device.clone(),
attachments: {
// `foo` is a custom name we give to the first and only attachment.
foo: {
load: Clear,
store: Store,
format: Format::R8G8B8A8_UNORM,
samples: 1,
}
},
pass: {
color: [foo], // Repeat the attachment name here.
depth_stencil: {}
}
).unwrap();
See the documentation of the macro for more details. TODO: put link here
Implementations
pub fn new(
device: Arc<Device>,
description: RenderPassDesc
) -> Result<Arc<RenderPass>, RenderPassCreationError>
pub fn new(
device: Arc<Device>,
description: RenderPassDesc
) -> Result<Arc<RenderPass>, RenderPassCreationError>
Builds a new render pass.
Panic
- Can panic if it detects some violations in the restrictions. Only inexpensive checks are
performed.
debug_assert!
is used, so some restrictions are only checked in debug mode.
pub fn empty_single_pass(
device: Arc<Device>
) -> Result<Arc<RenderPass>, RenderPassCreationError>
pub fn empty_single_pass(
device: Arc<Device>
) -> Result<Arc<RenderPass>, RenderPassCreationError>
Builds a render pass with one subpass and no attachment.
This method is useful for quick tests.
Returns the granularity of this render pass.
If the render area of a render pass in a command buffer is a multiple of this granularity, then the performance will be optimal. Performances are always optimal for render areas that cover the whole framebuffer.
Returns the description of the render pass.
Returns the first subpass of the render pass.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for RenderPass
impl Send for RenderPass
impl Sync for RenderPass
impl Unpin for RenderPass
impl UnwindSafe for RenderPass
Blanket Implementations
Mutably borrows from an owned value. Read more
Builds a pointer to this type from a raw pointer.
Returns true if the size is suitable to store a type like this.
Returns the size of an individual element.