Vesper 0.5.1
Vesper is short form for the Latin word for "Bat", as Vesper is designed to be small, lightweight, and easily handle things like particles and flocking behaviors in accordance with the nature of bats. \n It is meant to be a particle simulation, VFX editor, and CAN be used secondarily as a small game engine.
GitHub | Vesper Updates | Creator
Loading...
Searching...
No Matches
Vesper::OpenGLVertexBuffer Class Reference

#include <OpenGLBuffer.h>

Inheritance diagram for Vesper::OpenGLVertexBuffer:
Vesper::VertexBuffer

Public Member Functions

 OpenGLVertexBuffer (uint32_t size)
 OpenGLVertexBuffer (float *vertices, uint32_t size)
virtual ~OpenGLVertexBuffer ()
virtual void Bind () const override
virtual void Unbind () const override
virtual void SetLayout (const BufferLayout &layout) override
virtual const BufferLayoutGetLayout () const override
virtual void SetData (const void *data, uint32_t size) override
Public Member Functions inherited from Vesper::VertexBuffer
virtual ~VertexBuffer ()

Private Attributes

uint32_t m_RendererID
BufferLayout m_Layout

Additional Inherited Members

Static Public Member Functions inherited from Vesper::VertexBuffer
static Ref< VertexBufferCreate (uint32_t size)
static Ref< VertexBufferCreate (float *vertices, uint32_t size)

Constructor & Destructor Documentation

◆ OpenGLVertexBuffer() [1/2]

Vesper::OpenGLVertexBuffer::OpenGLVertexBuffer ( uint32_t size)
13 {
15
16 glCreateBuffers(1, &m_RendererID);
17 glBindBuffer(GL_ARRAY_BUFFER, m_RendererID);
18 glBufferData(GL_ARRAY_BUFFER, size, nullptr, GL_DYNAMIC_DRAW);
19 }
#define VZ_PROFILE_FUNCTION()
Definition Instrumentor.h:240
uint32_t m_RendererID
Definition OpenGLBuffer.h:22

References m_RendererID.

◆ OpenGLVertexBuffer() [2/2]

Vesper::OpenGLVertexBuffer::OpenGLVertexBuffer ( float * vertices,
uint32_t size )
22 {
24
25 glCreateBuffers(1, &m_RendererID);
26 glBindBuffer(GL_ARRAY_BUFFER, m_RendererID);
27 glBufferData(GL_ARRAY_BUFFER, size, vertices, GL_STATIC_DRAW);
28 }

References m_RendererID.

◆ ~OpenGLVertexBuffer()

Vesper::OpenGLVertexBuffer::~OpenGLVertexBuffer ( )
virtual
31 {
33
34 glDeleteBuffers(1, &m_RendererID);
35 }

References m_RendererID.

Member Function Documentation

◆ Bind()

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

Implements Vesper::VertexBuffer.

38 {
40
41 glBindBuffer(GL_ARRAY_BUFFER, m_RendererID);
42 }

◆ GetLayout()

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

Implements Vesper::VertexBuffer.

18{ return m_Layout; }
BufferLayout m_Layout
Definition OpenGLBuffer.h:23

◆ SetData()

void Vesper::OpenGLVertexBuffer::SetData ( const void * data,
uint32_t size )
overridevirtual

Implements Vesper::VertexBuffer.

52 {
54 glBindBuffer(GL_ARRAY_BUFFER, m_RendererID);
55 glBufferSubData(GL_ARRAY_BUFFER, 0, size, data);
56 }

◆ SetLayout()

virtual void Vesper::OpenGLVertexBuffer::SetLayout ( const BufferLayout & layout)
inlineoverridevirtual

Implements Vesper::VertexBuffer.

17{ m_Layout = layout; }

◆ Unbind()

void Vesper::OpenGLVertexBuffer::Unbind ( ) const
overridevirtual

Implements Vesper::VertexBuffer.

45 {
47
48 glBindBuffer(GL_ARRAY_BUFFER, 0);
49 }

Member Data Documentation

◆ m_Layout

BufferLayout Vesper::OpenGLVertexBuffer::m_Layout
private

◆ m_RendererID

uint32_t Vesper::OpenGLVertexBuffer::m_RendererID
private

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