KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
Karma::OpenGLVertexBuffer Class Reference

OpenGL's vertex buffer class, used in agnostic Mesh instance. More...

#include <OpenGLBuffer.h>

Inheritance diagram for Karma::OpenGLVertexBuffer:
Karma::VertexBuffer

Public Member Functions

 OpenGLVertexBuffer (float *vertices, uint32_t size)
 Constructor.
virtual ~OpenGLVertexBuffer ()
 Destructor.
virtual void Bind () const override
 Binds the vertexbuffer.
virtual void UnBind () const override
 UnBinds the vertexbuffer (cleanup).
virtual const BufferLayout & GetLayout () const override
 Getter for the layout of the vertex buffer.
virtual void SetLayout (const BufferLayout &layout) override
 Sets the layout of the vertexbuffer.

Additional Inherited Members

Static Public Member Functions inherited from Karma::VertexBuffer
static VertexBuffer * Create (float *vertices, uint32_t size)

Detailed Description

OpenGL's vertex buffer class, used in agnostic Mesh instance.

Since
Karma 1.0.0

Constructor & Destructor Documentation

◆ OpenGLVertexBuffer()

Karma::OpenGLVertexBuffer::OpenGLVertexBuffer ( float * vertices,
uint32_t size )

Constructor.

Parameters
verticesfloat array of interleaved vertex data (including position, uv, color, normal, and tangent) based on the BufferLayout
sizeSize (in bytes) of the vertex buffer (number of mesh vertices * sum of each vertex attribute's size). For instance:
float vertices[3 * 7] = {
-0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f,
0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f
};
will have size = 3 * (7 * sizeof(float)).
See also
Mesh::DealVertexIndexBufferData
Since
Karma 1.0.0

◆ ~OpenGLVertexBuffer()

Karma::OpenGLVertexBuffer::~OpenGLVertexBuffer ( )
virtual

Destructor.

Deletes the buffers and clears up OpenGL relevant resources

Since
Karma 1.0.0

Member Function Documentation

◆ Bind()

void Karma::OpenGLVertexBuffer::Bind ( ) const
overridevirtual

Binds the vertexbuffer.

See also
https://registry.khronos.org/OpenGL-Refpages/gl4/html/glBindBuffer.xhtml
Since
Karma 1.0.0

Implements Karma::VertexBuffer.

◆ GetLayout()

virtual const BufferLayout & Karma::OpenGLVertexBuffer::GetLayout ( ) const
inlineoverridevirtual

Getter for the layout of the vertex buffer.

Since
Karma 1.0.0

Implements Karma::VertexBuffer.

◆ SetLayout()

void Karma::OpenGLVertexBuffer::SetLayout ( const BufferLayout & layout)
overridevirtual

Sets the layout of the vertexbuffer.

Parameters
layoutThe reference to layout to be set
Since
Karma 1.0.0

Implements Karma::VertexBuffer.

◆ UnBind()

void Karma::OpenGLVertexBuffer::UnBind ( ) const
overridevirtual

UnBinds the vertexbuffer (cleanup).

Since
Karma 1.0.0

Implements Karma::VertexBuffer.


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