PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
PixelBullet::Buffer Class Reference

Interface that represents a buffer. More...

#include <Buffer.hpp>

Inheritance diagram for PixelBullet::Buffer:
PixelBullet::InstanceBuffer PixelBullet::StorageBuffer PixelBullet::UniformBuffer

Public Types

enum class  Status { Reset , Changed , Normal }
 

Public Member Functions

 Buffer (VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, const void *data=nullptr)
 
void MapMemory (void **data) const
 
void UnmapMemory () const
 
VkDeviceSize GetSize () const
 
const VkBuffer & GetBuffer () const
 
const VkDeviceMemory & GetBufferMemory () const
 

Static Public Member Functions

static uint32_t FindMemoryType (uint32_t typeFilter, const VkMemoryPropertyFlags &requiredProperties)
 
static void InsertBufferMemoryBarrier (const CommandBuffer &commandBuffer, const VkBuffer &buffer, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDeviceSize offset=0, VkDeviceSize size=VK_WHOLE_SIZE)
 

Protected Attributes

VkDeviceSize m_Size
 
VkBuffer m_Buffer = VK_NULL_HANDLE
 
VkDeviceMemory m_BufferMemory = VK_NULL_HANDLE
 

Detailed Description

Interface that represents a buffer.

Constructor & Destructor Documentation

◆ Buffer()

PixelBullet::Buffer::Buffer ( VkDeviceSize size,
VkBufferUsageFlags usage,
VkMemoryPropertyFlags properties,
const void * data = nullptr )

Creates a new buffer with optional data.

Parameters
sizeSize of the buffer in bytes.
usageUsage flag bitmask for the buffer (i.e. index, vertex, uniform buffer).
propertiesMemory properties for this buffer (i.e. device local, host visible, coherent).
dataPointer to the data that should be copied to the buffer after creation (optional, if not set, no data is copied over).

The documentation for this class was generated from the following files: