CoriEngine
Loading...
Searching...
No Matches
GL_VertexArray.hpp
Go to the documentation of this file.
1#pragma once
2#include "../VertexArray.hpp"
4
5namespace Cori {
6 namespace Graphics {
7 namespace Internal {
8 class OpenGLVertexArray final : public VertexArray, public Profiling::Trackable<OpenGLVertexArray, VertexArray> {
9 public:
11 ~OpenGLVertexArray() override;
12 void Bind() const override;
13 void Unbind() const override;
14
15 void AddVertexBuffer(const std::shared_ptr<VertexBuffer>& vertexBuffer) override;
16 void AddIndexBuffer(const std::shared_ptr<IndexBuffer>& indexBuffer) override;
17
18 [[nodiscard]] const std::vector<std::shared_ptr<VertexBuffer>>& GetVertexBuffers() const override { return m_VertexBuffers; }
19 [[nodiscard]] const std::shared_ptr<IndexBuffer>& GetIndexBuffer() const override { return m_IndexBuffer; }
20
21 private:
22 uint32_t m_ID;
23 std::vector<std::shared_ptr<VertexBuffer>> m_VertexBuffers;
24 std::shared_ptr<IndexBuffer> m_IndexBuffer;
25 };
26 }
27 }
28}
void AddIndexBuffer(const std::shared_ptr< IndexBuffer > &indexBuffer) override
const std::vector< std::shared_ptr< VertexBuffer > > & GetVertexBuffers() const override
void AddVertexBuffer(const std::shared_ptr< VertexBuffer > &vertexBuffer) override
const std::shared_ptr< IndexBuffer > & GetIndexBuffer() const override
For InstanceMetrics to work with a type it should derive from this.
Definition Trackable.hpp:29
Almost everything connected to graphics is in this namespace.
Definition Window.hpp:7
Global engine namespace.