1#include "VertexArray.h"
5 VertexArray::VertexArray()
7 GLCall(glGenVertexArrays(1, &m_RendererID));
8 GLCall(glBindVertexArray(m_RendererID));
11 VertexArray::~VertexArray()
15 void VertexArray::AddVertexBuffer(
const VertexBuffer& vb,
const VertexBufferLayout& layout,
16 const Vector<Vertex>& vertices)
20 const Vector<VertexBufferElement> elements = layout.GetElements();
21 unsigned int offset = 0;
22 for (
unsigned int i = 0; i < elements.size(); i++)
24 const VertexBufferElement element = elements[i];
25 GLCall(glEnableVertexAttribArray(i));
26 GLCall(glVertexAttribPointer(i, element.count, element.type, element.normalised, layout.GetStride(),
27 (
const void*)offset));
28 offset += element.count * VertexBufferElement::GetSizeOfType(element.type);
32 void VertexArray::AddIndexBuffer(
const IndexBuffer& ib)
38 void VertexArray::Bind()
const
40 GLCall(glBindVertexArray(m_RendererID));
43 void VertexArray::Unbind()
const
45 GLCall(glBindVertexArray(0));
48 Ref<VertexArray> VertexArray::Create()
50 return MakeRef<VertexArray>();