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

Device memory requirements.

Wraps a VkMemoryRequirements2. Not constructible directly, returned from Image::memoryRequirements() and Buffer::memoryRequirements().

Constructors, destructors, conversion operators

MemoryRequirements(NoInitT) explicit noexcept
Construct without initializing the contents.
MemoryRequirements(const VkMemoryRequirements2& requirements) explicit
Construct from existing data.
operator VkMemoryRequirements2&()
operator const VkMemoryRequirements2&() const

Public functions

auto requirements() -> VkMemoryRequirements2&
Underlying VkMemoryRequirements structure.
auto requirements() const -> const VkMemoryRequirements2&
auto operator->() -> VkMemoryRequirements2*
auto operator->() const -> const VkMemoryRequirements2*
auto size() const -> UnsignedLong
Required memory size.
auto alignment() const -> UnsignedLong
Required memory alignment.
auto alignedSize(UnsignedLong alignment) const -> UnsignedLong
Required memory size rounded up for given alignment.
auto memories() const -> UnsignedInt
Bits indicating which memory

Function documentation

Magnum::Vk::MemoryRequirements::MemoryRequirements(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::MemoryRequirements::MemoryRequirements(const VkMemoryRequirements2& requirements) 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::MemoryRequirements::operator VkMemoryRequirements2&()

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

Magnum::Vk::MemoryRequirements::operator const VkMemoryRequirements2&() const

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

const VkMemoryRequirements2& Magnum::Vk::MemoryRequirements::requirements() const

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

VkMemoryRequirements2* Magnum::Vk::MemoryRequirements::operator->()

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

const VkMemoryRequirements2* Magnum::Vk::MemoryRequirements::operator->() const

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

UnsignedLong Magnum::Vk::MemoryRequirements::size() const

Required memory size.

UnsignedLong Magnum::Vk::MemoryRequirements::alignment() const

Required memory alignment.

UnsignedLong Magnum::Vk::MemoryRequirements::alignedSize(UnsignedLong alignment) const

Required memory size rounded up for given alignment.

Pads size() with given alignment requirements. For example, a 13765-byte buffer aligned to 4 kB would be 16384 bytes. See the Memory class for more information and example usage.

The alignment is expected to be non-zero.