aboutsummaryrefslogtreecommitdiff
path: root/src/rendering/vertex_array.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/rendering/vertex_array.h')
-rw-r--r--src/rendering/vertex_array.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/rendering/vertex_array.h b/src/rendering/vertex_array.h
index 921df56..1f06758 100644
--- a/src/rendering/vertex_array.h
+++ b/src/rendering/vertex_array.h
@@ -9,20 +9,27 @@
namespace Donut
{
- class VertexArray
+ class VertexArray
{
public:
- virtual ~VertexArray() = default;
+ VertexArray();
+ ~VertexArray();
- virtual auto bind() const -> void = 0;
- virtual auto unbind() const -> void = 0;
+ auto bind() const -> void;
+ auto unbind() const -> void;
- virtual auto add_vertex_buffer(const Ref<VertexBuffer>& vertex_buffer) -> void = 0;
- virtual auto set_index_buffer(const Ref<IndexBuffer>& index_buffer) -> void = 0;
+ auto add_vertex_buffer(const Ref<VertexBuffer>& vertex_buffer) -> void;
+ auto set_index_buffer(const Ref<IndexBuffer>& index_buffer) -> void;
- virtual auto get_vertex_buffers() const -> const std::vector<Ref<VertexBuffer>>& = 0;
- virtual auto get_index_buffer() const -> const Ref<IndexBuffer>& = 0;
+ auto get_vertex_buffers() const -> const std::vector<Ref<VertexBuffer>>& { return m_vertex_buffers; }
+ auto get_index_buffer() const -> const Ref<IndexBuffer>& { return m_index_buffer; }
static auto create() -> VertexArray*;
+
+ private:
+ uint32_t m_renderer_id = 0;
+ uint32_t m_vertex_buffer_index = 0;
+ std::vector<Ref<VertexBuffer>> m_vertex_buffers;
+ Ref<IndexBuffer> m_index_buffer;
};
};