52 SOURCE = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
53 TARGET = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
54 UNITEX = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
55 STORTEX = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
56 UNIFORM = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
57 STORAGE = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
58 INDEX = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
59 VERTEX = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
65 SPARSE_BINDING = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
66 SPARSE_RESIDENCY = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
67 SPARSE_ALIASED = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
77 VkDeviceSize bufferSize,
78 unsigned int usageMask,
79 const Device& hDevice,
80 unsigned int flags = 0 );
89 VkDeviceSize bufferSize,
90 unsigned int usageMask,
91 const Device& hDevice,
92 const std::vector< unsigned int >& queueFamilyIndices,
93 unsigned int flags = 0 );
96 operator bool()
const;
102 const Device&
device()
const;
105 VkDeviceSize
size()
const;
111 template<
class MemoryT >
112 MemoryT
bindMemory (
const MemProfile& memProfile )
const;
185 template<
unsigned int USAGE >
189 static const unsigned int usage = USAGE;
200 unsigned int flags = 0,
201 unsigned int addUsage = 0 );
212 const std::vector< unsigned int >& queueFamilyIndices,
213 unsigned int flags = 0,
214 unsigned int addUsage = 0 );
219 template<
unsigned int USAGE2 >
EUsageFlags
Buffer usage flags. Can be bitwise-combined to create multipurpose buffers.
Definition: vppBuffer.hpp:50
Buffer< Buf::INDIRECT > IndirectBuffer
Predefined class for indirect buffers, used in indirect draws.
Definition: vppBuffer.hpp:232
Represents logical rendering device.
Definition: vppDevice.hpp:49
Buffer< Buf::INDEX > IndexBuffer
Predefined class for index buffers, used in indexed draws.
Definition: vppBuffer.hpp:226
unsigned int getUsage() const
Retrieves usage flags of the buffer.
Vertex index array for indexed primitives.
Definition: vppBuffer.hpp:58
The VPP namespace.
Definition: main.hpp:1
const Device & device() const
Retrieves the device associated with the buffer.
Buffer()
Constructs null reference.
Vertex attributes array.
Definition: vppBuffer.hpp:59
Read & write formatted data (storage texel buffer).
Definition: vppBuffer.hpp:55
Buf()
Constructs null reference.
VkDeviceSize size() const
Retrieves the size of the buffer.
Buffer holding indirect draw ranges.
Definition: vppBuffer.hpp:60
VkBuffer handle() const
Retrieves Vulkan handle of the buffer.
Buffer< Buf::VERTEX > VertexBuffer
Predefined class for vertex buffers.
Definition: vppBuffer.hpp:229
Generic class representing Vulkan buffers.
Definition: vppBuffer.hpp:43
Read-only formatted data (uniform texel buffer).
Definition: vppBuffer.hpp:54
Source buffer for transfer operations.
Definition: vppBuffer.hpp:52
Read & write array (storage buffer).
Definition: vppBuffer.hpp:57
Read-only common data (uniform buffer).
Definition: vppBuffer.hpp:56
Typed Vulkan buffer of specified purpose. Most functions operating on buffers require typed buffer...
Definition: vppBuffer.hpp:186
Target buffer for transfer operations.
Definition: vppBuffer.hpp:53
MemoryT bindMemory(const MemProfile &memProfile) const
Allocates and binds memory for the buffer.