42 virtual void Bind()
const = 0;
53 virtual void AddVertexBuffer(
const std::shared_ptr<VertexBuffer>& vertexBuffer) = 0;
54 virtual void SetIndexBuffer(
const std::shared_ptr<IndexBuffer>& indexBuffer) = 0;
55 virtual const std::vector<std::shared_ptr<VertexBuffer>>& GetVertexBuffers()
const = 0;
56 virtual const IndexBuffer* GetIndexBuffer()
const = 0;
65 virtual void SetMesh(std::shared_ptr<Mesh> mesh) = 0;
68 virtual void SetShader(std::shared_ptr<Shader> shader) = 0;
78 virtual void SetMaterial(std::shared_ptr<Material> material) = 0;
This file contains base classes for various kinds of buffers used by the Engine.
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
This file contains the Material class.
This file contains the class Mesh and relevant data structures.
This file contains the Shader class.
An abstract class for index buffer.
Definition Buffer.h:315
A class, comprising of Mesh and Material substances along with relevant setup, for a renderable unit.
Definition VertexArray.h:25
virtual void Bind() const =0
For binding OpenGL vertex array object.
virtual ~VertexArray()
A destructor.
Definition VertexArray.h:32
virtual std::shared_ptr< Material > GetMaterial() const =0
Getter function for material.
virtual void UnBind() const =0
Undo what Bind does.
virtual void SetMaterial(std::shared_ptr< Material > material)=0
Sets the material.
static VertexArray * Create()
Create the VertexArray object based on the rendering API chosen by the programmer.
Definition VertexArray.cpp:9
virtual void SetMesh(std::shared_ptr< Mesh > mesh)=0
Sets the index and vertex buffers seperately.
virtual void UpdateProcessAndSetReadyForSubmission() const =0
Called each game loop for updating.