Sparkle 0.0.1
Loading...
Searching...
No Matches
spk::OpenGL::BufferSetObject Class Reference

Bundles VAO, VBO, and IBO with synchronized activation. More...

#include <spk_buffer_set_object.hpp>

Inheritance diagram for spk::OpenGL::BufferSetObject:
Inheritance graph
Collaboration diagram for spk::OpenGL::BufferSetObject:
Collaboration graph

Public Member Functions

 BufferSetObject (BufferObject::Usage p_usage)
 Builds a buffer set with a shared usage hint.
 BufferSetObject (const BufferSetObject &p_other)
 Copies buffer set resources, keeping usage flags consistent.
BufferSetObjectoperator= (const BufferSetObject &p_other)
 Assigns buffer set contents from another instance.
VertexBufferObjectvbo ()
 Access mutable VBO.
IndexBufferObjectibo ()
 Access mutable IBO.
const VertexBufferObjectvbo () const
 Access const VBO.
const IndexBufferObjectibo () const
 Access const IBO.
VertexBufferObjectvertexBufferObject ()
 Alias for vbo.
IndexBufferObjectindexBufferObject ()
 Alias for ibo.
const VertexBufferObjectvertexBufferObject () const
 Const alias for vbo.
const IndexBufferObjectindexBufferObject () const
 Const alias for ibo.
Public Member Functions inherited from spk::ActivableObject
 ActivableObject ()
 Builds a deactivated object.
 ActivableObject (ActivationStatus p_initial)
 Builds with a custom initial activation state.
void activate ()
 Sets the state to Activated.
void deactivate ()
 Sets the state to Deactivated.
void toggle ()
 Toggles between activated and deactivated states.
bool isActive () const
 Checks whether the object is currently activated.
Contract addActivationCallback (const Job &p_callback)
 Registers a callback executed when the object activates.
Contract addDeactivationCallback (const Job &p_callback)
 Registers a callback executed when the object deactivates.
Public Member Functions inherited from spk::StatefulObject< ActivationStatus >
 StatefulObject (const ActivationStatus &p_initialState)
 Builds with an initial state.
StatefulObjectoperator= (const StatefulObject &p_other)=delete
void setState (const ActivationStatus &p_newState)
 Sets a new state and triggers callbacks registered for it.
ActivationStatus state () const
 Returns the current state.
Contract addCallback (const ActivationStatus &p_state, const Job &p_callback)
 Subscribes a callback for a specific state.
Public Member Functions inherited from spk::SynchronizableObject
void requestSynchronization () noexcept
 Marks the object as needing synchronization.
bool needsSynchronization () const noexcept
 Checks if synchronization is pending.
void synchronize ()
 Performs synchronization if requested.
void forceSynchronization ()
 Forces synchronization regardless of current flag.

Additional Inherited Members

Public Types inherited from spk::ActivableObject
using Contract = StatefulObject<ActivationStatus>::Contract
 Subscription handle controlling callback lifetime.
using Job = StatefulObject<ActivationStatus>::Job
 Callback signature executed on activation state changes.
Public Types inherited from spk::StatefulObject< ActivationStatus >
using Contract
 Handle allowing subscribers to manage callback lifetimes.
using Job
 Callable invoked when the object transitions to a state.

Detailed Description

Bundles VAO, VBO, and IBO with synchronized activation.

See also
VertexBufferObject, IndexBufferObject, VertexArrayObject

Constructor & Destructor Documentation

◆ BufferSetObject() [1/2]

spk::OpenGL::BufferSetObject::BufferSetObject ( BufferObject::Usage p_usage)
explicit

Builds a buffer set with a shared usage hint.

Parameters
p_usageUsage applied to VBO/IBO.
Here is the caller graph for this function:

◆ BufferSetObject() [2/2]

spk::OpenGL::BufferSetObject::BufferSetObject ( const BufferSetObject & p_other)

Copies buffer set resources, keeping usage flags consistent.

Parameters
p_otherBuffer set to duplicate.
Here is the call graph for this function:

Member Function Documentation

◆ ibo() [1/2]

IndexBufferObject & spk::OpenGL::BufferSetObject::ibo ( )

Access mutable IBO.

Returns
Index buffer object.

◆ ibo() [2/2]

const IndexBufferObject & spk::OpenGL::BufferSetObject::ibo ( ) const

Access const IBO.

Returns
Index buffer object.

◆ indexBufferObject() [1/2]

IndexBufferObject & spk::OpenGL::BufferSetObject::indexBufferObject ( )

Alias for ibo.

Returns
Mutable index buffer object.

◆ indexBufferObject() [2/2]

const IndexBufferObject & spk::OpenGL::BufferSetObject::indexBufferObject ( ) const

Const alias for ibo.

Returns
Const index buffer object.

◆ operator=()

BufferSetObject & spk::OpenGL::BufferSetObject::operator= ( const BufferSetObject & p_other)

Assigns buffer set contents from another instance.

Parameters
p_otherBuffer set to copy from.
Returns
Reference to this buffer set.
Here is the call graph for this function:

◆ vbo() [1/2]

VertexBufferObject & spk::OpenGL::BufferSetObject::vbo ( )

Access mutable VBO.

Returns
Vertex buffer object.
Here is the caller graph for this function:

◆ vbo() [2/2]

const VertexBufferObject & spk::OpenGL::BufferSetObject::vbo ( ) const

Access const VBO.

Returns
Vertex buffer object.

◆ vertexBufferObject() [1/2]

VertexBufferObject & spk::OpenGL::BufferSetObject::vertexBufferObject ( )

Alias for vbo.

Returns
Mutable vertex buffer object.

◆ vertexBufferObject() [2/2]

const VertexBufferObject & spk::OpenGL::BufferSetObject::vertexBufferObject ( ) const

Const alias for vbo.

Returns
Const vertex buffer object.

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