#pragma once #include "vertex_buffer.h" #include "index_buffer.h" #include #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 std::shared_ptr& vertex_buffer) = 0; virtual void set_index_buffer(const std::shared_ptr& index_buffer) = 0; virtual const std::vector>& get_vertex_buffers() const = 0; virtual const std::shared_ptr& get_index_buffer() const = 0; static VertexArray* create(); }; };