galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
galaxy::graphics::InstanceBuffer Class Referencefinal

Abstraction for OpenGL vertex buffer objects. More...

#include <InstanceBuffer.hpp>

+ Collaboration diagram for galaxy::graphics::InstanceBuffer:

Public Member Functions

 InstanceBuffer ()
 Constructor.
 
 InstanceBuffer (InstanceBuffer &&)
 Move constructor.
 
InstanceBufferoperator= (InstanceBuffer &&)
 Move assignment operator.
 
 ~InstanceBuffer ()
 Destructor.
 
void buffer (std::span< glm::mat4 > transforms)
 Create instance buffer.
 
void sub_buffer (const unsigned int index, std::span< glm::mat4 > transforms)
 Sub-buffer instances.
 
void clear ()
 Clear buffer data.
 
int amount () const
 Get the amount of instances.
 
unsigned int id () const
 Get OpenGL handle.
 

Private Member Functions

 InstanceBuffer (const InstanceBuffer &)=delete
 Copy constructor.
 
InstanceBufferoperator= (const InstanceBuffer &)=delete
 Copy assignment operator.
 

Private Attributes

unsigned int m_id
 ID returned by OpenGL when generating buffer.
 
int m_amount
 Number of instances.
 

Detailed Description

Abstraction for OpenGL vertex buffer objects.

Definition at line 22 of file InstanceBuffer.hpp.

Constructor & Destructor Documentation

◆ InstanceBuffer() [1/3]

galaxy::graphics::InstanceBuffer::InstanceBuffer ( )

Constructor.

Definition at line 17 of file InstanceBuffer.cpp.

◆ InstanceBuffer() [2/3]

galaxy::graphics::InstanceBuffer::InstanceBuffer ( InstanceBuffer && i)

Move constructor.

Definition at line 24 of file InstanceBuffer.cpp.

◆ ~InstanceBuffer()

galaxy::graphics::InstanceBuffer::~InstanceBuffer ( )

Destructor.

Definition at line 45 of file InstanceBuffer.cpp.

◆ InstanceBuffer() [3/3]

galaxy::graphics::InstanceBuffer::InstanceBuffer ( const InstanceBuffer & )
privatedelete

Copy constructor.

Member Function Documentation

◆ operator=() [1/2]

InstanceBuffer & galaxy::graphics::InstanceBuffer::operator= ( InstanceBuffer && i)

Move assignment operator.

Definition at line 32 of file InstanceBuffer.cpp.

◆ buffer()

void galaxy::graphics::InstanceBuffer::buffer ( std::span< glm::mat4 > transforms)

Create instance buffer.

Parameters
transformsTransform to apply to each instance.

Definition at line 53 of file InstanceBuffer.cpp.

◆ sub_buffer()

void galaxy::graphics::InstanceBuffer::sub_buffer ( const unsigned int index,
std::span< glm::mat4 > transforms )

Sub-buffer instances.

Parameters
indexOffset to start from. 0 = first element.
transformsTransforms to upload.

Definition at line 59 of file InstanceBuffer.cpp.

◆ clear()

void galaxy::graphics::InstanceBuffer::clear ( )

Clear buffer data.

Definition at line 64 of file InstanceBuffer.cpp.

◆ amount()

int galaxy::graphics::InstanceBuffer::amount ( ) const
nodiscard

Get the amount of instances.

Returns
Integer.

Definition at line 69 of file InstanceBuffer.cpp.

+ Here is the caller graph for this function:

◆ id()

unsigned int galaxy::graphics::InstanceBuffer::id ( ) const
nodiscard

Get OpenGL handle.

Returns
Unsigned integer.

Definition at line 74 of file InstanceBuffer.cpp.

+ Here is the caller graph for this function:

◆ operator=() [2/2]

InstanceBuffer & galaxy::graphics::InstanceBuffer::operator= ( const InstanceBuffer & )
privatedelete

Copy assignment operator.

Member Data Documentation

◆ m_id

unsigned int galaxy::graphics::InstanceBuffer::m_id
private

ID returned by OpenGL when generating buffer.

Definition at line 95 of file InstanceBuffer.hpp.

◆ m_amount

int galaxy::graphics::InstanceBuffer::m_amount
private

Number of instances.

Definition at line 100 of file InstanceBuffer.hpp.


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