vOOlkan
An object oriented approach to Vulkan
Vulkan::Buffers::Buffer Class Reference

#include <Buffer.h>

Inheritance diagram for Vulkan::Buffers::Buffer:
Vulkan::Buffers::IndexBuffer Vulkan::Buffers::StagingBuffer Vulkan::Buffers::UniformBuffer Vulkan::Buffers::VertexBuffer

Public Member Functions

template<std::same_as< VkMemoryPropertyFlagBits >... P>
 Buffer (const LogicalDevice &virtualGpu, const PhysicalDevice &realGpu, size_t size, int usage, P... requiredMemoryProperties)
 
 Buffer (const Buffer &)=delete
 
Bufferoperator= (const Buffer &)=delete
 
 Buffer (Buffer &&)=default
 
Bufferoperator= (Buffer &&)=default
 
 ~Buffer ()
 
const VkBuffer & operator+ () const
 
VkDeviceMemory & getBufferMemory ()
 

Static Public Member Functions

template<std::same_as< VkMemoryPropertyFlagBits >... P>
static uint32_t findSuitableMemoryIndex (const PhysicalDevice &realGpu, uint32_t suitableTypesBitmask, P... requiredMemoryProperties)
 

Protected Member Functions

void createBuffer (const LogicalDevice &virtualGpu, size_t size, int usage)
 
void allocateMemory (uint32_t memoryIndex, VkDeviceSize sizeToAllocate)
 

Protected Attributes

VkBuffer buffer
 
VkDeviceMemory bufferMemory
 
const LogicalDevicevirtualGpu
 
const size_t size
 

Constructor & Destructor Documentation

◆ Buffer() [1/3]

template<std::same_as< VkMemoryPropertyFlagBits >... P>
Vulkan::Buffers::Buffer::Buffer ( const LogicalDevice virtualGpu,
const PhysicalDevice realGpu,
size_t  size,
int  usage,
P...  requiredMemoryProperties 
)
inline

◆ Buffer() [2/3]

Vulkan::Buffers::Buffer::Buffer ( const Buffer )
delete

◆ Buffer() [3/3]

Vulkan::Buffers::Buffer::Buffer ( Buffer &&  )
default

◆ ~Buffer()

Vulkan::Buffers::Buffer::~Buffer ( )
inline

Member Function Documentation

◆ allocateMemory()

void Vulkan::Buffers::Buffer::allocateMemory ( uint32_t  memoryIndex,
VkDeviceSize  sizeToAllocate 
)
inlineprotected

◆ createBuffer()

void Vulkan::Buffers::Buffer::createBuffer ( const LogicalDevice virtualGpu,
size_t  size,
int  usage 
)
inlineprotected

◆ findSuitableMemoryIndex()

template<std::same_as< VkMemoryPropertyFlagBits >... P>
static uint32_t Vulkan::Buffers::Buffer::findSuitableMemoryIndex ( const PhysicalDevice realGpu,
uint32_t  suitableTypesBitmask,
P...  requiredMemoryProperties 
)
inlinestatic

◆ getBufferMemory()

VkDeviceMemory & Vulkan::Buffers::Buffer::getBufferMemory ( )
inline

◆ operator+()

const VkBuffer & Vulkan::Buffers::Buffer::operator+ ( ) const
inline

◆ operator=() [1/2]

Buffer & Vulkan::Buffers::Buffer::operator= ( Buffer &&  )
default

◆ operator=() [2/2]

Buffer & Vulkan::Buffers::Buffer::operator= ( const Buffer )
delete

Member Data Documentation

◆ buffer

VkBuffer Vulkan::Buffers::Buffer::buffer
protected

◆ bufferMemory

VkDeviceMemory Vulkan::Buffers::Buffer::bufferMemory
protected

◆ size

const size_t Vulkan::Buffers::Buffer::size
protected

◆ virtualGpu

const LogicalDevice& Vulkan::Buffers::Buffer::virtualGpu
protected

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