46 virtual void Bind()
const override;
53 virtual void UnBind()
const override;
57 virtual void AddVertexBuffer(
const std::shared_ptr<VertexBuffer>& vertexBuffer)
override;
58 virtual void SetIndexBuffer(
const std::shared_ptr<IndexBuffer>& indexBuffer)
override;
60 virtual void SetShader(std::shared_ptr<Shader> shader)
override {}
71 virtual void SetMesh(std::shared_ptr<Mesh> mesh)
override;
78 virtual void SetMaterial(std::shared_ptr<Material> material)
override;
85 virtual const std::vector<std::shared_ptr<VertexBuffer>>&
GetVertexBuffers()
const override {
return m_VertexBuffers; }
99 virtual std::shared_ptr<Material>
GetMaterial()
const override {
return m_Materials.at(0); }
106 virtual void UpdateProcessAndSetReadyForSubmission()
const override;
109 uint32_t m_RendererID;
111 std::vector<std::shared_ptr<VertexBuffer>> m_VertexBuffers;
112 std::shared_ptr<IndexBuffer> m_IndexBuffer;
115 std::vector<std::shared_ptr<Material>> m_Materials;
116 std::vector<std::shared_ptr<OpenGLShader>> m_Shaders;
117 std::shared_ptr<OpenGLShader> m_Shader;
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
This file contains OpenGLShader class.
This file contains the VertexArray class.
An abstract class for index buffer.
Definition Buffer.h:315
virtual void SetMesh(std::shared_ptr< Mesh > mesh) override
Using OpenGL's API, the vertex buffer is processed for rendering.
Definition OpenGLVertexArray.cpp:93
virtual const std::vector< std::shared_ptr< VertexBuffer > > & GetVertexBuffers() const override
Getter for vertex buffer.
Definition OpenGLVertexArray.h:85
OpenGLVertexArray()
A constructor.
Definition OpenGLVertexArray.cpp:40
virtual void UnBind() const override
Unbinds the array.
Definition OpenGLVertexArray.cpp:57
virtual std::shared_ptr< Material > GetMaterial() const override
Getter for Material.
Definition OpenGLVertexArray.h:99
virtual void Bind() const override
Binds the vertex array object.
Definition OpenGLVertexArray.cpp:52
virtual const IndexBuffer * GetIndexBuffer() const override
Getter for index buffer.
Definition OpenGLVertexArray.h:92
virtual void SetMaterial(std::shared_ptr< Material > material) override
Sets the material cache for OpenGL's rendering.
Definition OpenGLVertexArray.cpp:126
A class, comprising of Mesh and Material substances along with relevant setup, for a renderable unit.
Definition VertexArray.h:25