KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
Karma::RendererAPI Class Referenceabstract

An abstract class for a renderer. More...

#include <RendererAPI.h>

Inheritance diagram for Karma::RendererAPI:

Public Types

enum class  API { None = 0 , OpenGL = 1 , Vulkan = 2 }
 The rendering API used by the Engine. More...
 

Public Member Functions

virtual ~RendererAPI ()
 A destructor.
 
virtual void SetClearColor (const glm::vec4 &color)=0
 Set the color to be used for clear (rendering) screen.
 
virtual void Clear ()=0
 Clear the rendering screen.
 
virtual void BeginScene ()=0
 Setting up resources for rendering of a scene.
 
virtual void DrawIndexed (std::shared_ptr< VertexArray > vertexArray)=0
 Routine for drawing primitives.
 
virtual void EndScene ()=0
 Instructions for end of the scene.
 
glm::vec4 & GetClearColor () const
 Getter for m_ClearColor variable.
 

Static Public Member Functions

static API GetAPI ()
 Getter for rendering api being used.
 

Static Protected Attributes

static glm::vec4 m_ClearColor = { 0.0f, 0.0f, 0.0f, 0.0f }
 

Detailed Description

An abstract class for a renderer.

Member Enumeration Documentation

◆ API

enum class Karma::RendererAPI::API
strong

The rendering API used by the Engine.

Enumerator
None 

No rendering.

Todo
None rendering could be supported in future
OpenGL 

OpenGL (https://www.opengl.org)

Vulkan 

Vulkan (https://www.vulkan.org)

Constructor & Destructor Documentation

◆ ~RendererAPI()

virtual Karma::RendererAPI::~RendererAPI ( )
inlinevirtual

A destructor.

Since
Karma 1.0.0

Member Function Documentation

◆ BeginScene()

virtual void Karma::RendererAPI::BeginScene ( )
pure virtual

Setting up resources for rendering of a scene.

See also
RenderCommand::BeginScene
Since
Karma 1.0.0

Implemented in Karma::OpenGLRendererAPI, and Karma::VulkanRendererAPI.

◆ Clear()

virtual void Karma::RendererAPI::Clear ( )
pure virtual

Clear the rendering screen.

Since
Karma 1.0.0

Implemented in Karma::OpenGLRendererAPI, and Karma::VulkanRendererAPI.

◆ DrawIndexed()

virtual void Karma::RendererAPI::DrawIndexed ( std::shared_ptr< VertexArray > vertexArray)
pure virtual

Routine for drawing primitives.

Since
Karma 1.0.0

Implemented in Karma::OpenGLRendererAPI, and Karma::VulkanRendererAPI.

◆ EndScene()

virtual void Karma::RendererAPI::EndScene ( )
pure virtual

Instructions for end of the scene.

Since
Karma 1.0.0

Implemented in Karma::OpenGLRendererAPI, and Karma::VulkanRendererAPI.

◆ GetAPI()

static API Karma::RendererAPI::GetAPI ( )
inlinestatic

Getter for rendering api being used.

Since
Karma 1.0.0

◆ GetClearColor()

glm::vec4 & Karma::RendererAPI::GetClearColor ( ) const
inline

Getter for m_ClearColor variable.

Since
Karma 1.0.0

◆ SetClearColor()

virtual void Karma::RendererAPI::SetClearColor ( const glm::vec4 & color)
pure virtual

Set the color to be used for clear (rendering) screen.

Parameters
colorThe color to be used for clearing
Since
Karma 1.0.0

Implemented in Karma::OpenGLRendererAPI, and Karma::VulkanRendererAPI.


The documentation for this class was generated from the following files: