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

OpenGL Shader storage buffer. More...

#include <ShaderBuffer.hpp>

+ Collaboration diagram for galaxy::ShaderBuffer:

Public Member Functions

 ShaderBuffer ()
 Constructor.
 
 ShaderBuffer (const GLBufferBinding index)
 Constructor.
 
 ShaderBuffer (ShaderBuffer &&) noexcept
 Move constructor.
 
ShaderBufferoperator= (ShaderBuffer &&) noexcept
 Move assignment operator.
 
 ~ShaderBuffer ()
 Destructor.
 
void set_index (const GLBufferBinding index)
 Set vertex shader binding point.
 
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

 ShaderBuffer (const ShaderBuffer &)=delete
 Copy constructor.
 
ShaderBufferoperator= (const ShaderBuffer &)=delete
 Copy assignment operator.
 

Private Attributes

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

Detailed Description

OpenGL Shader storage buffer.

Definition at line 20 of file ShaderBuffer.hpp.

Constructor & Destructor Documentation

◆ ShaderBuffer() [1/4]

galaxy::ShaderBuffer::ShaderBuffer ( )

Constructor.

You must call set_index() if you use default constructor.

Definition at line 14 of file ShaderBuffer.cpp.

◆ ShaderBuffer() [2/4]

galaxy::ShaderBuffer::ShaderBuffer ( const GLBufferBinding index)

Constructor.

Parameters
indexIndex binding that needs to match in vertex shader.

Definition at line 21 of file ShaderBuffer.cpp.

◆ ShaderBuffer() [3/4]

galaxy::ShaderBuffer::ShaderBuffer ( ShaderBuffer && s)
noexcept

Move constructor.

Definition at line 28 of file ShaderBuffer.cpp.

◆ ~ShaderBuffer()

galaxy::ShaderBuffer::~ShaderBuffer ( )

Destructor.

Definition at line 53 of file ShaderBuffer.cpp.

+ Here is the call graph for this function:

◆ ShaderBuffer() [4/4]

galaxy::ShaderBuffer::ShaderBuffer ( const ShaderBuffer & )
privatedelete

Copy constructor.

Member Function Documentation

◆ operator=() [1/2]

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

Move assignment operator.

Definition at line 38 of file ShaderBuffer.cpp.

◆ set_index()

void galaxy::ShaderBuffer::set_index ( const GLBufferBinding index)

Set vertex shader binding point.

Parameters
indexIndex binding that needs to match in vertex shader.

Definition at line 58 of file ShaderBuffer.cpp.

◆ buffer()

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

+ Here is the call graph for this function:

◆ sub_buffer()

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

◆ bind()

void galaxy::ShaderBuffer::bind ( ) const

Bind buffer.

Definition at line 63 of file ShaderBuffer.cpp.

◆ unbind()

void galaxy::ShaderBuffer::unbind ( ) const

Unbind buffer.

Definition at line 73 of file ShaderBuffer.cpp.

◆ clear()

void galaxy::ShaderBuffer::clear ( ) const

Clears data from buffer.

Definition at line 78 of file ShaderBuffer.cpp.

+ Here is the caller graph for this function:

◆ destroy()

void galaxy::ShaderBuffer::destroy ( )

Destroy shader.

Definition at line 86 of file ShaderBuffer.cpp.

+ Here is the caller graph for this function:

◆ id()

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

Get OpenGL handle.

Returns
Unsigned integer.

Definition at line 95 of file ShaderBuffer.cpp.

◆ operator=() [2/2]

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

Copy assignment operator.

Member Data Documentation

◆ m_id

unsigned int galaxy::ShaderBuffer::m_id
private

OpenGL handle.

Definition at line 125 of file ShaderBuffer.hpp.

◆ m_index

int galaxy::ShaderBuffer::m_index
private

Index binding of SSBO in vertex shader.

Definition at line 130 of file ShaderBuffer.hpp.


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