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:
Collaboration diagram for Karma::OpenGLVertexBuffer:

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 BufferLayoutGetLayout () 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 VertexBufferCreate (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: