Struct vulkano::render_pass::RenderPass
source · [−]pub struct RenderPass { /* private fields */ }
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.
use vulkano::render_pass::{RenderPass, RenderPassCreateInfo, SubpassDescription};
let render_pass = RenderPass::new(
device.clone(),
RenderPassCreateInfo {
subpasses: vec![SubpassDescription::default()],
..Default::default()
},
).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
sourceimpl RenderPass
impl RenderPass
sourcepub fn new(
device: Arc<Device>,
create_info: RenderPassCreateInfo
) -> Result<Arc<RenderPass>, RenderPassCreationError>
pub fn new(
device: Arc<Device>,
create_info: RenderPassCreateInfo
) -> Result<Arc<RenderPass>, RenderPassCreationError>
Creates a new RenderPass
.
Panics
- Panics if
create_info.subpasses
is empty. - Panics if any element of
create_info.attachments
has aformat
ofNone
.
sourcepub 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.
sourcepub fn attachments(&self) -> &[AttachmentDescription]
pub fn attachments(&self) -> &[AttachmentDescription]
Returns the attachments of the render pass.
sourcepub fn subpasses(&self) -> &[SubpassDescription]
pub fn subpasses(&self) -> &[SubpassDescription]
Returns the subpasses of the render pass.
sourcepub fn dependencies(&self) -> &[SubpassDependency]
pub fn dependencies(&self) -> &[SubpassDependency]
Returns the dependencies of the render pass.
Returns the correlated view masks of the render pass.
sourcepub fn views_used(&self) -> u32
pub fn views_used(&self) -> u32
If the render pass has multiview enabled, returns the number of views used by the render pass. Returns 0 if multiview is not enabled.
sourcepub fn granularity(&self) -> [u32; 2]
pub fn granularity(&self) -> [u32; 2]
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.
sourcepub fn first_subpass(self: Arc<Self>) -> Subpass
pub fn first_subpass(self: Arc<Self>) -> Subpass
Returns the first subpass of the render pass.
sourcepub fn is_compatible_with(&self, other: &RenderPass) -> bool
pub fn is_compatible_with(&self, other: &RenderPass) -> bool
Returns true
if this render pass is compatible with the other render pass,
as defined in the Render Pass Compatibility
section of the Vulkan specs.
sourcepub fn is_compatible_with_shader(
&self,
subpass: u32,
shader_interface: &ShaderInterface
) -> bool
pub fn is_compatible_with_shader(
&self,
subpass: u32,
shader_interface: &ShaderInterface
) -> bool
Returns true
if the subpass of this description is compatible with the shader’s fragment
output definition.
Trait Implementations
sourceimpl Debug for RenderPass
impl Debug for RenderPass
sourceimpl DeviceOwned for RenderPass
impl DeviceOwned for RenderPass
sourceimpl Drop for RenderPass
impl Drop for RenderPass
sourceimpl Hash for RenderPass
impl Hash for RenderPass
sourceimpl PartialEq<RenderPass> for RenderPass
impl PartialEq<RenderPass> for RenderPass
sourceimpl VulkanObject for RenderPass
impl VulkanObject for RenderPass
type Object = RenderPass
type Object = RenderPass
The type of the object.
sourcefn internal_object(&self) -> RenderPass
fn internal_object(&self) -> RenderPass
Returns a reference to the object.
impl Eq for RenderPass
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more