#pragma once #include "core/memory.h" #include "vertex_buffer.h" #include "index_buffer.h" #include namespace Donut { class VertexArray { public: virtual ~VertexArray() = default; virtual void bind() const = 0; virtual void unbind() const = 0; virtual void add_vertex_buffer(const Ref& vertex_buffer) = 0; virtual void set_index_buffer(const Ref& index_buffer) = 0; virtual const std::vector>& get_vertex_buffers() const = 0; virtual const Ref& get_index_buffer() const = 0; static VertexArray* create(); }; };