Muto 0.0.1
Cross-Platform Application Template
GitHub Repo | Muto Updates | Muto's Author
Loading...
Searching...
No Matches
Muto::OpenGLVertexArray Class Reference

#include <OpenGLVertexArray.h>

Inheritance diagram for Muto::OpenGLVertexArray:
Muto::VertexArray

Public Member Functions

void AddVertexBuffer (const Ref< VertexBuffer > &vertexBuffer) override
 Adds a vertex buffer to the vertex array.
 
void Bind () const override
 
const Ref< IndexBuffer > & GetIndexBuffer () const override
 
const std::vector< Ref< VertexBuffer > > & GetVertexBuffers () override
 
 OpenGLVertexArray ()
 
void SetIndexBuffer (const Ref< IndexBuffer > &indexBuffer) override
 Sets the index buffer for the vertex array.
 
void Unbind () const override
 
 ~OpenGLVertexArray ()
 
- Public Member Functions inherited from Muto::VertexArray
virtual ~VertexArray ()
 

Private Attributes

Ref< IndexBuffer > m_IndexBuffer
 
uint32_t m_RendererID
 
uint32_t m_VertexBufferIndex = 0
 
std::vector< Ref< VertexBuffer > > m_VertexBuffers
 

Additional Inherited Members

- Static Public Member Functions inherited from Muto::VertexArray
static Ref< VertexArray > Create ()
 

Constructor & Destructor Documentation

◆ OpenGLVertexArray()

Muto::OpenGLVertexArray::OpenGLVertexArray ( )
31 {
33
35 }
#define MU_PROFILE_FUNCTION()
Definition Instrumentor.h:240
uint32_t m_RendererID
Definition OpenGLVertexArray.h:21
constexpr Scope< T > CreateScope(Args &&... args)
Creates a Scope (unique_ptr) for the given type and constructor arguments.
Definition Defines_Macros.h:51

References m_RendererID.

◆ ~OpenGLVertexArray()

Muto::OpenGLVertexArray::~OpenGLVertexArray ( )

References m_RendererID.

Member Function Documentation

◆ AddVertexBuffer()

void Muto::OpenGLVertexArray::AddVertexBuffer ( const Ref< VertexBuffer > &  vertexBuffer)
overridevirtual

Adds a vertex buffer to the vertex array.

Implements Muto::VertexArray.

59 {
61
62 MU_CORE_ASSERT(vertexBuffer->GetLayout().GetElements().size(), "Vertex Buffer has no layout!");
64 vertexBuffer->Bind();
65
66
67 uint32_t index = 0;
68 const auto& layout = vertexBuffer->GetLayout();
69 for (const auto& element : layout)
70 {
71 MU_PROFILE_SCOPE("VertexBufferElement");
73 glVertexAttribPointer(index, element.GetComponentCount(),
75 element.Normalized ? GL_TRUE : GL_FALSE,
76 layout.GetStride(), (const void*)element.Offset);
77 index++;
78 }
80 }
#define MU_CORE_ASSERT(x,...)
Definition Asserts.h:32
#define MU_PROFILE_SCOPE(name)
Definition Instrumentor.h:239
std::vector< Ref< VertexBuffer > > m_VertexBuffers
Definition OpenGLVertexArray.h:23
static GLenum ShaderDataTypeToOpenGLBaseType(ShaderDataType type)
Definition OpenGLVertexArray.cpp:9

References m_RendererID.

◆ Bind()

void Muto::OpenGLVertexArray::Bind ( ) const
overridevirtual

Implements Muto::VertexArray.

References m_RendererID.

◆ GetIndexBuffer()

const Ref< IndexBuffer > & Muto::OpenGLVertexArray::GetIndexBuffer ( ) const
inlineoverridevirtual

Implements Muto::VertexArray.

18{ return m_IndexBuffer; }
Ref< IndexBuffer > m_IndexBuffer
Definition OpenGLVertexArray.h:24

◆ GetVertexBuffers()

const std::vector< Ref< VertexBuffer > > & Muto::OpenGLVertexArray::GetVertexBuffers ( )
inlineoverridevirtual

Implements Muto::VertexArray.

17{ return m_VertexBuffers; }

◆ SetIndexBuffer()

void Muto::OpenGLVertexArray::SetIndexBuffer ( const Ref< IndexBuffer > &  indexBuffer)
overridevirtual

Sets the index buffer for the vertex array.

Implements Muto::VertexArray.

References m_RendererID.

◆ Unbind()

void Muto::OpenGLVertexArray::Unbind ( ) const
overridevirtual

Implements Muto::VertexArray.

52 {
54
56 }

Member Data Documentation

◆ m_IndexBuffer

Ref<IndexBuffer> Muto::OpenGLVertexArray::m_IndexBuffer
private

◆ m_RendererID

uint32_t Muto::OpenGLVertexArray::m_RendererID
private

◆ m_VertexBufferIndex

uint32_t Muto::OpenGLVertexArray::m_VertexBufferIndex = 0
private

◆ m_VertexBuffers

std::vector<Ref<VertexBuffer> > Muto::OpenGLVertexArray::m_VertexBuffers
private

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