#pragma once #include #include "VertexBuffer.h" namespace nf { class VertexArray { struct VertexBufferElement { unsigned int type; unsigned int count; unsigned char normalized; }; public: VertexArray(); void addBuffer(const void* data, const size_t size); template void push(unsigned int count); void finishBufferLayout(); void bind(unsigned int buffer = 1); ~VertexArray(); private: unsigned int m_id; bool m_lastBufferHasLayout; std::vector m_buffers; std::vector m_lastBufferLayout; unsigned int m_attribute; unsigned int m_lastStride; }; }