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

Abstraction for OpenGL buffer objects. More...

#include <ShaderStorageBuffer.hpp>

+ Collaboration diagram for galaxy::graphics::ShaderStorageBuffer:

Public Member Functions

 ShaderStorageBuffer (const int index)
 Constructor.
 
 ShaderStorageBuffer (ShaderStorageBuffer &&)
 Move constructor.
 
ShaderStorageBufferoperator= (ShaderStorageBuffer &&)
 Move assignment operator.
 
 ~ShaderStorageBuffer ()
 Destructor.
 
template<typename Object >
void buffer (const unsigned int offset, const unsigned int count, Object *data)
 Buffer data.
 
template<typename Object >
void sub_buffer (const unsigned int offset, const unsigned int count, Object *data)
 Sub buffer data.
 
void bind () const
 Bind buffer.
 
void clear ()
 Clears data from buffer.
 
unsigned int id () const
 Get OpenGL handle.
 

Private Member Functions

 ShaderStorageBuffer ()=delete
 Default constructor.
 
 ShaderStorageBuffer (const ShaderStorageBuffer &)=delete
 Copy constructor.
 
ShaderStorageBufferoperator= (const ShaderStorageBuffer &)=delete
 Copy assignment operator.
 

Private Attributes

unsigned int m_id
 OpenGL handle.
 
int m_index
 Index of SSBO in shader.
 

Detailed Description

Abstraction for OpenGL buffer objects.

Definition at line 20 of file ShaderStorageBuffer.hpp.

Constructor & Destructor Documentation

◆ ShaderStorageBuffer() [1/4]

galaxy::graphics::ShaderStorageBuffer::ShaderStorageBuffer ( const int index)

Constructor.

Parameters
indexIndex to set SSBO to.

Definition at line 14 of file ShaderStorageBuffer.cpp.

◆ ShaderStorageBuffer() [2/4]

galaxy::graphics::ShaderStorageBuffer::ShaderStorageBuffer ( ShaderStorageBuffer && s)

Move constructor.

Definition at line 21 of file ShaderStorageBuffer.cpp.

◆ ~ShaderStorageBuffer()

galaxy::graphics::ShaderStorageBuffer::~ShaderStorageBuffer ( )

Destructor.

Definition at line 50 of file ShaderStorageBuffer.cpp.

◆ ShaderStorageBuffer() [3/4]

galaxy::graphics::ShaderStorageBuffer::ShaderStorageBuffer ( )
privatedelete

Default constructor.

◆ ShaderStorageBuffer() [4/4]

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

Copy constructor.

Member Function Documentation

◆ operator=() [1/2]

ShaderStorageBuffer & galaxy::graphics::ShaderStorageBuffer::operator= ( ShaderStorageBuffer && s)

Move assignment operator.

Definition at line 33 of file ShaderStorageBuffer.cpp.

◆ buffer()

template<typename Object >
void galaxy::graphics::ShaderStorageBuffer::buffer ( const unsigned int offset,
const unsigned int count,
Object * data )
inline

Buffer data.

Template Parameters
ObjectThe data structure to use with this buffer.
Parameters
offsetOffset to start adding buffer from.
countNumber of objects in data.
dataPointer to the data to buffer.

Definition at line 116 of file ShaderStorageBuffer.hpp.

+ Here is the caller graph for this function:

◆ sub_buffer()

template<typename Object >
void galaxy::graphics::ShaderStorageBuffer::sub_buffer ( const unsigned int offset,
const unsigned int count,
Object * data )
inline

Sub buffer data.

Template Parameters
ObjectThe data structure to use with this buffer.
Parameters
offsetOffset to start adding buffer from.
countNumber of objects in data.
dataPointer to the data to buffer.

Definition at line 123 of file ShaderStorageBuffer.hpp.

+ Here is the caller graph for this function:

◆ bind()

void galaxy::graphics::ShaderStorageBuffer::bind ( ) const

Bind buffer.

Definition at line 58 of file ShaderStorageBuffer.cpp.

+ Here is the caller graph for this function:

◆ clear()

void galaxy::graphics::ShaderStorageBuffer::clear ( )

Clears data from buffer.

Definition at line 63 of file ShaderStorageBuffer.cpp.

+ Here is the caller graph for this function:

◆ id()

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

Get OpenGL handle.

Returns
Unsigned integer.

Definition at line 71 of file ShaderStorageBuffer.cpp.

◆ operator=() [2/2]

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

Copy assignment operator.

Member Data Documentation

◆ m_id

unsigned int galaxy::graphics::ShaderStorageBuffer::m_id
private

OpenGL handle.

Definition at line 107 of file ShaderStorageBuffer.hpp.

◆ m_index

int galaxy::graphics::ShaderStorageBuffer::m_index
private

Index of SSBO in shader.

Definition at line 112 of file ShaderStorageBuffer.hpp.


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