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::VertexBuffer Class Referencefinal

Abstraction for OpenGL vertex buffer objects. More...

#include <VertexBuffer.hpp>

+ Collaboration diagram for galaxy::graphics::VertexBuffer:

Public Member Functions

 VertexBuffer ()
 Constructor.
 
 VertexBuffer (VertexBuffer &&)
 Move constructor.
 
VertexBufferoperator= (VertexBuffer &&)
 Move assignment operator.
 
 ~VertexBuffer ()
 Destructor.
 
void buffer (std::span< Vertex > vertices, std::span< unsigned int > indicies)
 Create vertex buffer object.
 
void buffer (const int vertex_count, std::span< unsigned int > indicies)
 Create vertex data without uploading.
 
void sub_buffer (const unsigned int index, std::span< Vertex > vertices)
 Sub-buffer vertex object.
 
void clear ()
 Clear buffer data.
 
int count () const
 Get the index count.
 
void * offset ()
 Gets index offset.
 
unsigned int id () const
 Get OpenGL handle.
 

Private Member Functions

 VertexBuffer (const VertexBuffer &)=delete
 Copy constructor.
 
VertexBufferoperator= (const VertexBuffer &)=delete
 Copy assignment operator.
 

Private Attributes

unsigned int m_id
 ID returned by OpenGL when generating buffer.
 
std::size_t m_offset
 Index buffer offset.
 
int m_count
 Index buffer count.
 

Detailed Description

Abstraction for OpenGL vertex buffer objects.

Definition at line 22 of file VertexBuffer.hpp.

Constructor & Destructor Documentation

◆ VertexBuffer() [1/3]

galaxy::graphics::VertexBuffer::VertexBuffer ( )

Constructor.

Definition at line 16 of file VertexBuffer.cpp.

◆ VertexBuffer() [2/3]

galaxy::graphics::VertexBuffer::VertexBuffer ( VertexBuffer && v)

Move constructor.

Definition at line 24 of file VertexBuffer.cpp.

◆ ~VertexBuffer()

galaxy::graphics::VertexBuffer::~VertexBuffer ( )

Destructor.

Definition at line 47 of file VertexBuffer.cpp.

◆ VertexBuffer() [3/3]

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

Copy constructor.

Member Function Documentation

◆ operator=() [1/2]

VertexBuffer & galaxy::graphics::VertexBuffer::operator= ( VertexBuffer && v)

Move assignment operator.

Definition at line 33 of file VertexBuffer.cpp.

◆ buffer() [1/2]

void galaxy::graphics::VertexBuffer::buffer ( std::span< Vertex > vertices,
std::span< unsigned int > indicies )

Create vertex buffer object.

Parameters
verticesVertices to assign.
indiciesIndices for vertex buffer.

Definition at line 55 of file VertexBuffer.cpp.

+ Here is the caller graph for this function:

◆ buffer() [2/2]

void galaxy::graphics::VertexBuffer::buffer ( const int vertex_count,
std::span< unsigned int > indicies )

Create vertex data without uploading.

Parameters
vertex_countSize of vertices.
indiciesIndices for vertex buffer.

Definition at line 66 of file VertexBuffer.cpp.

◆ sub_buffer()

void galaxy::graphics::VertexBuffer::sub_buffer ( const unsigned int index,
std::span< Vertex > vertices )

Sub-buffer vertex object.

Parameters
indexOffset to start at from initial vertices. 0 = first element.
verticesVertices to assign.

Definition at line 77 of file VertexBuffer.cpp.

+ Here is the caller graph for this function:

◆ clear()

void galaxy::graphics::VertexBuffer::clear ( )

Clear buffer data.

Definition at line 82 of file VertexBuffer.cpp.

+ Here is the caller graph for this function:

◆ count()

int galaxy::graphics::VertexBuffer::count ( ) const
nodiscard

Get the index count.

Returns
Integer.

Definition at line 90 of file VertexBuffer.cpp.

+ Here is the caller graph for this function:

◆ offset()

void * galaxy::graphics::VertexBuffer::offset ( )
nodiscard

Gets index offset.

Returns
Integer as void pointer for opengl shenanigans.

Definition at line 95 of file VertexBuffer.cpp.

+ Here is the caller graph for this function:

◆ id()

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

Get OpenGL handle.

Returns
Unsigned integer.

Definition at line 100 of file VertexBuffer.cpp.

+ Here is the caller graph for this function:

◆ operator=() [2/2]

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

Copy assignment operator.

Member Data Documentation

◆ m_id

unsigned int galaxy::graphics::VertexBuffer::m_id
private

ID returned by OpenGL when generating buffer.

Definition at line 112 of file VertexBuffer.hpp.

◆ m_offset

std::size_t galaxy::graphics::VertexBuffer::m_offset
private

Index buffer offset.

Definition at line 117 of file VertexBuffer.hpp.

◆ m_count

int galaxy::graphics::VertexBuffer::m_count
private

Index buffer count.

Definition at line 122 of file VertexBuffer.hpp.


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