31class FGE_API UniformBuffer :
public ContextAware
41 explicit UniformBuffer(
Context const& context, Types type = Types::UNIFORM_BUFFER);
42 UniformBuffer(UniformBuffer
const& r);
43 UniformBuffer(UniformBuffer&& r)
noexcept;
44 ~UniformBuffer()
override;
46 UniformBuffer& operator=(UniformBuffer
const& r);
47 UniformBuffer& operator=(UniformBuffer&& r)
noexcept;
49 void create(VkDeviceSize bufferSize, Types type = Types::UNIFORM_BUFFER);
50 void resize(VkDeviceSize bufferSize,
bool shrink =
false);
54 [[nodiscard]] VkBuffer getBuffer()
const;
55 [[nodiscard]] VmaAllocation getBufferAllocation()
const;
56 [[nodiscard]]
void* getBufferMapped()
const;
57 [[nodiscard]] VkDeviceSize getBufferSize()
const;
58 [[nodiscard]] VkDeviceSize getBufferCapacity()
const;
59 [[nodiscard]] Types getType()
const;
61 void copyData(
void const* data, std::size_t size)
const;
65 [[nodiscard]]
BufferInfo createBuffer(VkDeviceSize bufferSize)
const;
68 void* g_uniformBufferMapped;
69 VkDeviceSize g_bufferSize;
70 VkDeviceSize g_bufferCapacity;
72 mutable std::vector<uint8_t> g_uniformBuffer;
Vulkan context.
Definition C_context.hpp:70