#pragma once #include namespace deerith { class mesh_2d_t { public: mesh_2d_t(const glm::vec2 *vertices, size_t vertex_size, const unsigned int *indices, size_t index_count); void bind() const; void draw() const; ~mesh_2d_t(); private: unsigned int vao; unsigned int vbo; unsigned int ebo; size_t index_count; }; class mesh_3d_t { public: mesh_3d_t(const glm::vec3 *vertices, size_t vertex_size, const unsigned int *indices, size_t index_count); void bind() const; void draw() const; void draw_lines() const; ~mesh_3d_t(); private: unsigned int vao; unsigned int vbo; unsigned int ebo; size_t index_count; size_t vertex_count; }; }