#pragma once #include #include namespace WillowVox { class VertexArrayObject { public: VertexArrayObject(); ~VertexArrayObject(); void Bind(); void Draw(); void BufferVertexData(std::size_t size, void* data); void BufferElementData(ElementBufferAttribType type, uint32_t numElements, void* data); void SetAttribPointer(uint32_t index, std::size_t attribSize, VertexBufferAttribType attribType, bool normalized, std::size_t vertexSize, std::size_t offset); private: std::unique_ptr m_vertexBuffer; std::unique_ptr m_elementBuffer; unsigned int m_vao; }; }