16#ifndef AEONGAMES_VULKANMEMORYPOOLBUFFER_HPP
17#define AEONGAMES_VULKANMEMORYPOOLBUFFER_HPP
22#include <initializer_list>
23#include <vulkan/vulkan.h>
24#include "VulkanBuffer.hpp"
25#include "aeongames/MemoryPoolBuffer.hpp"
53 void InitializeDescriptorPool();
54 void FinalizeDescriptorPool();
55 void InitializeDescriptorSet();
58 VkDescriptorPool mVkDescriptorPool{ VK_NULL_HANDLE };
59 VkDescriptorSet mVkDescriptorSet{ VK_NULL_HANDLE };
Provides access to a region within a memory pool buffer.
Abstract interface for GPU/memory buffer operations.
Abstract interface for a pool-based buffer allocator.
Vulkan GPU buffer wrapper implementing the Buffer interface.
const VkDescriptorSet & GetDescriptorSet() const
Get the Vulkan descriptor set for this pool buffer.
void Initialize(size_t aStackSize)
Initialize the pool buffer with the given size.
VulkanMemoryPoolBuffer(const VulkanRenderer &aVulkanRenderer, size_t aStackSize)
Construct with a renderer and initial pool size.
const Buffer & GetBuffer() const final
Get a reference to the underlying Buffer.
void Finalize()
Release pool buffer and descriptor resources.
BufferAccessor Allocate(size_t aSize) final
Allocate a sub-region from the memory pool.
void Reset() final
Reset the pool, freeing all previous allocations.
Vulkan rendering backend implementing the Renderer interface.
<- This is here just for the literals