Magnum::Vk::FramebufferCreateInfo class new in Git master

Framebuffer creation info.

Wraps a VkFramebufferCreateInfo. See Framebuffer creation for usage information.

Public types

enum class Flag: UnsignedInt { }
Framebuffer creation flag.
using Flags = Containers::EnumSet<Flag>
Framebuffer creation flags.

Constructors, destructors, conversion operators

FramebufferCreateInfo(VkRenderPass renderPass, Containers::ArrayView<const Containers::Reference<ImageView>> attachments, const Vector3i& size, Flags flags = {}) explicit
Construct a multi-layer framebuffer.
FramebufferCreateInfo(VkRenderPass renderPass, std::initializer_list<Containers::Reference<ImageView>> attachments, const Vector3i& size, Flags flags = {}) explicit
FramebufferCreateInfo(VkRenderPass renderPass, Containers::ArrayView<const Containers::Reference<ImageView>> attachments, const Vector2i& size, Flags flags = {}) explicit
Construct a single-layer framebuffer.
FramebufferCreateInfo(VkRenderPass renderPass, std::initializer_list<Containers::Reference<ImageView>> attachments, const Vector2i& size, Flags flags = {}) explicit
FramebufferCreateInfo(NoInitT) explicit noexcept
Construct without initializing the contents.
FramebufferCreateInfo(const VkFramebufferCreateInfo& info) explicit
Construct from existing data.
FramebufferCreateInfo(const FramebufferCreateInfo&) deleted
Copying is not allowed.
FramebufferCreateInfo(FramebufferCreateInfo&& other) noexcept
Move constructor.
operator const VkFramebufferCreateInfo*() const

Public functions

auto operator=(const FramebufferCreateInfo&) -> FramebufferCreateInfo& deleted
Copying is not allowed.
auto operator=(FramebufferCreateInfo&& other) -> FramebufferCreateInfo& noexcept
Move assignment.
auto operator*() -> VkFramebufferCreateInfo&
Underlying VkFramebufferCreateInfo structure.
auto operator*() const -> const VkFramebufferCreateInfo&
auto operator->() -> VkFramebufferCreateInfo*
auto operator->() const -> const VkFramebufferCreateInfo*

Enum documentation

Typedef documentation

Function documentation

Magnum::Vk::FramebufferCreateInfo::FramebufferCreateInfo(VkRenderPass renderPass, Containers::ArrayView<const Containers::Reference<ImageView>> attachments, const Vector3i& size, Flags flags = {}) explicit

Construct a multi-layer framebuffer.

Parameters
renderPass A RenderPass or a raw Vulkan render pass handle the framebuffer is compatible with
attachments Image views corresponding to all attachments listed in RenderPassCreateInfo::setAttachments(). All images the views are created from are expected to have been created with ImageUsage::ColorAttachment / ImageUsage::DepthStencilAttachment / ImageUsage::InputAttachment based on what they are attached to.
size Width, height and layer count of the framebuffer. Available through Framebuffer::size() afterwards.
flags Framebuffer creation flags

The following VkFramebufferCreateInfo fields are pre-filled in addition to sType, everything else is zero-filled:

  • flags
  • renderPass
  • attachmentCount and pAttachments to a copy of attachments
  • width, height and layers to size

Magnum::Vk::FramebufferCreateInfo::FramebufferCreateInfo(VkRenderPass renderPass, std::initializer_list<Containers::Reference<ImageView>> attachments, const Vector3i& size, Flags flags = {}) explicit

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Magnum::Vk::FramebufferCreateInfo::FramebufferCreateInfo(VkRenderPass renderPass, Containers::ArrayView<const Containers::Reference<ImageView>> attachments, const Vector2i& size, Flags flags = {}) explicit

Construct a single-layer framebuffer.

Equivalent to calling FramebufferCreateInfo(VkRenderPass, Containers::ArrayView<const Containers::Reference<ImageView>>, const Vector3i&, Flags) with the last dimension set to 1.

Magnum::Vk::FramebufferCreateInfo::FramebufferCreateInfo(VkRenderPass renderPass, std::initializer_list<Containers::Reference<ImageView>> attachments, const Vector2i& size, Flags flags = {}) explicit

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Magnum::Vk::FramebufferCreateInfo::FramebufferCreateInfo(NoInitT) explicit noexcept

Construct without initializing the contents.

Note that not even the sType field is set — the structure has to be fully initialized afterwards in order to be usable.

Magnum::Vk::FramebufferCreateInfo::FramebufferCreateInfo(const VkFramebufferCreateInfo& info) explicit

Construct from existing data.

Copies the existing values verbatim, pointers are kept unchanged without taking over the ownership. Modifying the newly created instance will not modify the original data nor the pointed-to data.

Magnum::Vk::FramebufferCreateInfo::operator const VkFramebufferCreateInfo*() const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

const VkFramebufferCreateInfo& Magnum::Vk::FramebufferCreateInfo::operator*() const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

VkFramebufferCreateInfo* Magnum::Vk::FramebufferCreateInfo::operator->()

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

const VkFramebufferCreateInfo* Magnum::Vk::FramebufferCreateInfo::operator->() const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.