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

#include <VertexBuffer.h>

Inheritance diagram for Vulkan::Buffers::VertexBuffer:
Vulkan::Buffers::Buffer

Public Member Functions

 VertexBuffer (const LogicalDevice &virtualGpu, const PhysicalDevice &realGpu, size_t size)
 
template<typename... C, typename... S, template< typename, typename... > class... M>
requires (std::same_as<M<PipelineOptions::Vertex<C...>, S...>, Objects::Model<PipelineOptions::Vertex<C...>, S...>> && ...)
void fillBuffer (const M< PipelineOptions::Vertex< C... >, S... > &... models)
 
unsigned int getVerticesCount () const
 
- Public Member Functions inherited from Vulkan::Buffers::Buffer
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 ()
 

Additional Inherited Members

- Static Public Member Functions inherited from Vulkan::Buffers::Buffer
template<std::same_as< VkMemoryPropertyFlagBits >... P>
static uint32_t findSuitableMemoryIndex (const PhysicalDevice &realGpu, uint32_t suitableTypesBitmask, P... requiredMemoryProperties)
 
- Protected Member Functions inherited from Vulkan::Buffers::Buffer
void createBuffer (const LogicalDevice &virtualGpu, size_t size, int usage)
 
void allocateMemory (uint32_t memoryIndex, VkDeviceSize sizeToAllocate)
 
- Protected Attributes inherited from Vulkan::Buffers::Buffer
VkBuffer buffer
 
VkDeviceMemory bufferMemory
 
const LogicalDevicevirtualGpu
 
const size_t size
 

Constructor & Destructor Documentation

◆ VertexBuffer()

Vulkan::Buffers::VertexBuffer::VertexBuffer ( const LogicalDevice virtualGpu,
const PhysicalDevice realGpu,
size_t  size 
)
inline

Member Function Documentation

◆ fillBuffer()

template<typename... C, typename... S, template< typename, typename... > class... M>
requires (std::same_as<M<PipelineOptions::Vertex<C...>, S...>, Objects::Model<PipelineOptions::Vertex<C...>, S...>> && ...)
void Vulkan::Buffers::VertexBuffer::fillBuffer ( const M< PipelineOptions::Vertex< C... >, S... > &...  models)
inline

◆ getVerticesCount()

unsigned int Vulkan::Buffers::VertexBuffer::getVerticesCount ( ) const
inline

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