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

Modern SSBO abstraction. More...

#include <ShaderStorageBuffer.hpp>

+ Collaboration diagram for galaxy::ShaderStorageBuffer:

Public Member Functions

 ShaderStorageBuffer (const int index)
 Constructor.
 
 ShaderStorageBuffer (ShaderStorageBuffer &&) noexcept
 Move constructor.
 
ShaderStorageBufferoperator= (ShaderStorageBuffer &&) noexcept
 Move assignment operator.
 
 ~ShaderStorageBuffer ()
 Destructor.
 
template<typename Object >
void buffer (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 unbind () const
 Unbind buffer.
 
void clear () const
 Clears data from buffer.
 
void destroy ()
 Destroy shader.
 
unsigned int id () const noexcept
 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 binding of SSBO in vertex shader.
 

Detailed Description

Modern SSBO abstraction.

https://ktstephano.github.io/rendering/opengl/ssbos

Definition at line 20 of file ShaderStorageBuffer.hpp.

Constructor & Destructor Documentation

◆ ShaderStorageBuffer() [1/4]

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

Constructor.

Parameters
indexIndex binding that needs to match in vertex shader.

Definition at line 12 of file ShaderStorageBuffer.cpp.

◆ ShaderStorageBuffer() [2/4]

galaxy::ShaderStorageBuffer::ShaderStorageBuffer ( ShaderStorageBuffer && s)
noexcept

Move constructor.

Definition at line 19 of file ShaderStorageBuffer.cpp.

◆ ~ShaderStorageBuffer()

galaxy::ShaderStorageBuffer::~ShaderStorageBuffer ( )

Destructor.

Definition at line 44 of file ShaderStorageBuffer.cpp.

+ Here is the call graph for this function:

◆ ShaderStorageBuffer() [3/4]

galaxy::ShaderStorageBuffer::ShaderStorageBuffer ( )
privatedelete

Default constructor.

◆ ShaderStorageBuffer() [4/4]

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

Copy constructor.

Member Function Documentation

◆ operator=() [1/2]

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

Move assignment operator.

Definition at line 29 of file ShaderStorageBuffer.cpp.

◆ buffer()

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

Buffer data.

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

Definition at line 125 of file ShaderStorageBuffer.hpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sub_buffer()

template<typename Object >
void galaxy::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 134 of file ShaderStorageBuffer.hpp.

+ Here is the caller graph for this function:

◆ bind()

void galaxy::ShaderStorageBuffer::bind ( ) const

Bind buffer.

Definition at line 49 of file ShaderStorageBuffer.cpp.

+ Here is the caller graph for this function:

◆ unbind()

void galaxy::ShaderStorageBuffer::unbind ( ) const

Unbind buffer.

Definition at line 54 of file ShaderStorageBuffer.cpp.

+ Here is the caller graph for this function:

◆ clear()

void galaxy::ShaderStorageBuffer::clear ( ) const

Clears data from buffer.

Definition at line 59 of file ShaderStorageBuffer.cpp.

+ Here is the caller graph for this function:

◆ destroy()

void galaxy::ShaderStorageBuffer::destroy ( )

Destroy shader.

Definition at line 67 of file ShaderStorageBuffer.cpp.

+ Here is the caller graph for this function:

◆ id()

unsigned int galaxy::ShaderStorageBuffer::id ( ) const
nodiscardnoexcept

Get OpenGL handle.

Returns
Unsigned integer.

Definition at line 76 of file ShaderStorageBuffer.cpp.

+ Here is the caller graph for this function:

◆ operator=() [2/2]

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

Copy assignment operator.

Member Data Documentation

◆ m_id

unsigned int galaxy::ShaderStorageBuffer::m_id
private

OpenGL handle.

Definition at line 116 of file ShaderStorageBuffer.hpp.

◆ m_index

int galaxy::ShaderStorageBuffer::m_index
private

Index binding of SSBO in vertex shader.

Definition at line 121 of file ShaderStorageBuffer.hpp.


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