#pragma once #include "VertexBuffer.h" #include "IndexBuffer.h" #include #include namespace Donut { class VertexArray { public: virtual ~VertexArray() = default; virtual void Bind() const = 0; virtual void Unbind() const = 0; virtual void AddVertexBuffer(const std::shared_ptr& vertexBuffer) = 0; virtual void SetIndexBuffer(const std::shared_ptr& indexBuffer) = 0; virtual const std::vector>& GetVertexBuffers() const = 0; virtual const std::shared_ptr& GetIndexBuffer() const = 0; static VertexArray* Create(); }; };