CoriEngine
Loading...
Searching...
No Matches
VertexArray.hpp
Go to the documentation of this file.
1#pragma once
2#include "Buffers.hpp"
3
4namespace Cori {
5 namespace Graphics {
6 class VertexArray {
7 public:
8 virtual ~VertexArray() = default;
9 virtual void Bind() const = 0;
10 virtual void Unbind() const = 0;
11
12 virtual void AddVertexBuffer(const std::shared_ptr<VertexBuffer>& vertexBuffer) = 0;
13 virtual void AddIndexBuffer(const std::shared_ptr<IndexBuffer>& indexBuffer) = 0;
14
15 [[nodiscard]] virtual const std::vector<std::shared_ptr<VertexBuffer>>& GetVertexBuffers() const = 0;
16 [[nodiscard]] virtual const std::shared_ptr<IndexBuffer>& GetIndexBuffer() const = 0;
17
18 [[nodiscard]] static std::shared_ptr<VertexArray> Create();
19 };
20 }
21}
virtual void AddVertexBuffer(const std::shared_ptr< VertexBuffer > &vertexBuffer)=0
virtual void AddIndexBuffer(const std::shared_ptr< IndexBuffer > &indexBuffer)=0
virtual void Bind() const =0
virtual const std::shared_ptr< IndexBuffer > & GetIndexBuffer() const =0
virtual const std::vector< std::shared_ptr< VertexBuffer > > & GetVertexBuffers() const =0
virtual void Unbind() const =0
virtual ~VertexArray()=default
static std::shared_ptr< VertexArray > Create()
Almost everything connected to graphics is in this namespace.
Definition Window.hpp:7
Global engine namespace.