Hymn to Beauty
C++ 3D Engine
Video::Buffer Class Referenceabstract

A buffer containing GPU accessible data. More...

#include <Buffer.hpp>

Inheritance diagram for Video::Buffer:
Video::OpenGLBuffer Video::VulkanBuffer Video::WebGPUBuffer

Public Types

enum class  BufferUsage {
  VERTEX_BUFFER , INDEX_BUFFER , UNIFORM_BUFFER , STORAGE_BUFFER ,
  VERTEX_STORAGE_BUFFER , COUNT
}
 How the buffer is going to be used. More...
 

Public Member Functions

 Buffer (BufferUsage bufferUsage)
 Create a new buffer. More...
 
virtual ~Buffer ()
 Destructor. More...
 
virtual void Reset (BufferUsage bufferUsage, const BufferAllocation &allocation)=0
 Reset the buffer. More...
 
virtual unsigned int GetSize () const =0
 Get the size of the buffer. More...
 
BufferUsage GetBufferUsage () const
 Get how the buffer is to be used. More...
 

Protected Attributes

BufferUsage bufferUsage
 How the buffer will be used. More...
 

Detailed Description

A buffer containing GPU accessible data.

Member Enumeration Documentation

◆ BufferUsage

enum class Video::Buffer::BufferUsage
strong

How the buffer is going to be used.

Enumerator
VERTEX_BUFFER 

The buffer will be used as a vertex buffer.

INDEX_BUFFER 

The buffer will be used as an index buffer.

UNIFORM_BUFFER 

The buffer will be used as a uniform buffer.

STORAGE_BUFFER 

The buffer will be used as a storage buffer.

VERTEX_STORAGE_BUFFER 

The buffer will be used as both vertex and storage buffer.

COUNT 

The number of different buffer usages.

Constructor & Destructor Documentation

◆ Buffer()

Video::Buffer::Buffer ( BufferUsage  bufferUsage)
inline

Create a new buffer.

Parameters
bufferUsageHow the buffer will be used.

◆ ~Buffer()

virtual Video::Buffer::~Buffer ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ GetBufferUsage()

BufferUsage Video::Buffer::GetBufferUsage ( ) const
inline

Get how the buffer is to be used.

Returns
How the buffer will be used.

◆ GetSize()

virtual unsigned int Video::Buffer::GetSize ( ) const
pure virtual

Get the size of the buffer.

Returns
The size of the buffer in bytes.

Implemented in Video::OpenGLBuffer, Video::VulkanBuffer, and Video::WebGPUBuffer.

◆ Reset()

virtual void Video::Buffer::Reset ( BufferUsage  bufferUsage,
const BufferAllocation allocation 
)
pure virtual

Reset the buffer.

Parameters
bufferUsageHow the buffer will be used.
allocationAllocation to back up buffer memory.

Implemented in Video::OpenGLBuffer, Video::VulkanBuffer, and Video::WebGPUBuffer.

Member Data Documentation

◆ bufferUsage

BufferUsage Video::Buffer::bufferUsage
protected

How the buffer will be used.


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