hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/rendering/vertex_array.h
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-08-20 22:05:09 +0200
committerhachem <im@hachem.wtf>2026-08-20 22:05:09 +0200
commit0f49e8fd2a364f91f0a4c3bc2210fac4d9bf2ecc (patch)
tree8afb5564714fec75b19dbe3b7a42df2cfbee34c5 /src/rendering/vertex_array.h
parent85b63b3b61174a99811f3cba235da4537634edd4 (diff)
refactor: fold the OpenGL backend classes into rendering
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;
};
};