16 static auto create(
const VmaAllocator &allocator,
size_t size,
17 VkBufferUsageFlags usage,
18 const std::optional<VmaAllocationCreateFlags> &flags = {})
19 -> std::shared_ptr<Buffer>;
22 const ::vk::Queue &submit_queue,
23 const ::vk::CommandPool &command_pool,
24 const std::shared_ptr<Buffer> &src,
25 const std::shared_ptr<Buffer> &dst,
size_t size)
28 Buffer(
const VmaAllocator &allocator) : allocator_(allocator) {}
42 vmaMapMemory(allocator_, allocation_, &mapped_ptr_);
47 if (mapped_ptr_ ==
nullptr)
return;
48 vmaUnmapMemory(allocator_, allocation_);
49 mapped_ptr_ =
nullptr;
52 [[nodiscard]]
auto get()
const {
return buffer_; }
55 ::vk::Buffer buffer_{};
56 VmaAllocator allocator_ =
nullptr;
57 VmaAllocation allocation_{};
59 void *mapped_ptr_ =
nullptr;
static auto copy_buffer(const ::vk::Device &device, const ::vk::Queue &submit_queue, const ::vk::CommandPool &command_pool, const std::shared_ptr< Buffer > &src, const std::shared_ptr< Buffer > &dst, size_t size) -> expected< void >
Definition buffer.cpp:55
static auto create(const VmaAllocator &allocator, size_t size, VkBufferUsageFlags usage, const std::optional< VmaAllocationCreateFlags > &flags={}) -> std::shared_ptr< Buffer >
Definition buffer.cpp:14