aboutsummaryrefslogtreecommitdiff
path: root/src/rendering/vertex_array.h
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-08-20 22:20:49 +0200
committerhachem <im@hachem.wtf>2026-08-20 22:20:49 +0200
commit45baf48db974c66cfdc51f26cee191abbbd89a0b (patch)
treeb60c27506f1e1c37b7238161156c83e7e159fc12 /src/rendering/vertex_array.h
parent00bf9a8cce28ab1dbc77ba24428be12391c4a576 (diff)
[feat]: reduce renderer abstraction
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;
};
};