Struct vulkano::render_pass::Framebuffer [−][src]
pub struct Framebuffer { /* fields omitted */ }
Expand description
The image views that are attached to a render pass during drawing.
A framebuffer is a collection of images, and supplies the actual inputs and outputs of each subpass within a render pass. It is created from a subpass and must match it: each attachment point in the subpass must have a matching image in the framebuffer.
Creating a framebuffer is done by calling Framebuffer::start
, which returns a
FramebufferBuilder
object. You can then add the framebuffer attachments one by one by
calling add(image)
. When you are done, call build()
.
Both the add
and the build
functions perform various checks to make sure that the number
of images is correct and that each image is compatible with the attachment definition in the
render pass.
use vulkano::render_pass::Framebuffer;
// let render_pass: Arc<_> = ...;
let framebuffer = Framebuffer::start(render_pass.clone())
.add(view).unwrap()
.build().unwrap();
All framebuffer objects implement the FramebufferAbstract
trait. This means that you can cast
any Arc<Framebuffer<..>>
into an Arc<FramebufferAbstract>
for easier storage.
Framebuffer dimensions
If you use Framebuffer::start()
to create a framebuffer then vulkano will automatically
make sure that all the attachments have the same dimensions, as this is the most common
situation.
Alternatively you can also use with_intersecting_dimensions
, in which case the dimensions of
the framebuffer will be the intersection of the dimensions of all attachments, or
with_dimensions
if you want to specify exact dimensions. If you use with_dimensions
, you
are allowed to attach images that are larger than these dimensions.
If the dimensions of the framebuffer don’t match the dimensions of one of its attachment, then only the top-left hand corner of the image will be drawn to.
Implementations
Starts building a framebuffer.
Starts building a framebuffer. The dimensions of the framebuffer will automatically be the intersection of the dimensions of all the attachments.
pub fn with_dimensions(
render_pass: Arc<RenderPass>,
dimensions: [u32; 3]
) -> FramebufferBuilder
pub fn with_dimensions(
render_pass: Arc<RenderPass>,
dimensions: [u32; 3]
) -> FramebufferBuilder
Starts building a framebuffer.
Returns the width, height and layers of this framebuffer.
Returns the device that was used to create this framebuffer.
Returns the renderpass that was used to create this framebuffer.
Returns the attachment of the framebuffer with the given index.
If the index
is not between 0
and num_attachments
, then None
should be returned.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Framebuffer
impl Send for Framebuffer
impl Sync for Framebuffer
impl Unpin for Framebuffer
impl !UnwindSafe for Framebuffer
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.