Struct BufferBuilder

Inheritance Relationships

Base Type

Struct Documentation

struct BufferBuilder : public portal::renderer::vulkan::BuilderBase<BufferBuilder, vk::BufferCreateInfo>

Builder for creating VMA-allocated Vulkan buffers.

Inherits common VMA options from BuilderBase (vma_usage, vma_flags, etc.). Size is required at construction.

Usage:

auto buffer = BufferBuilder(1024)
    .with_usage(vk::BufferUsageFlagBits::eStorageBuffer)
    .with_vma_usage(VMA_MEMORY_USAGE_GPU_ONLY)
    .build(device);

Public Functions

explicit BufferBuilder(vk::DeviceSize size)

Constructs buffer builder with size.

Parameters:

size – Buffer size in bytes (required)

AllocatedBuffer build(const VulkanDevice &device) const

Creates AllocatedBuffer.

Parameters:

device – The Vulkan device

Returns:

AllocatedBuffer with VMA-allocated memory

std::shared_ptr<AllocatedBuffer> build_shared(const VulkanDevice &device) const

Creates AllocatedBuffer in shared_ptr.

Parameters:

device – The Vulkan device

Returns:

Shared pointer to AllocatedBuffer

BufferBuilder &with_flags(vk::BufferCreateFlags flags)

Sets buffer create flags.

Parameters:

flags – Buffer create flags

Returns:

Reference to this builder

BufferBuilder &with_usage(vk::BufferUsageFlags usage)

Sets buffer usage flags.

Parameters:

usage – Buffer usage flags (eTransferSrc, eStorageBuffer, etc.)

Returns:

Reference to this builder