Struct BufferBuilder¶
Defined in File allocated_buffer.h
Inheritance Relationships¶
Base Type¶
public portal::renderer::vulkan::BuilderBase< BufferBuilder, vk::BufferCreateInfo >(Template Class BuilderBase)
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
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
-
explicit BufferBuilder(vk::DeviceSize size)¶