Karma Engine
Loading...
Searching...
No Matches
RendererAPI.h
1#pragma once
2
3#include "krpch.h"
4
5#include "glm/glm.hpp"
6#include "VertexArray.h"
7
8namespace Karma
9{
10 class KARMA_API RendererAPI
11 {
12 public:
13 enum class API
14 {
15 None = 0,
16 OpenGL = 1,
17 Vulkan = 2
18 };
19
20 public:
21 virtual ~RendererAPI() {}
22 virtual void SetClearColor(const glm::vec4& color) = 0;
23 virtual void Clear() = 0;
24
25 virtual void BeginScene() = 0;
26 virtual void DrawIndexed(std::shared_ptr<VertexArray> vertexArray) = 0;
27 virtual void EndScene() = 0;
28
29 inline glm::vec4& GetClearColor() const { return m_ClearColor; }
30
31 inline static API GetAPI() { return s_API; }
32
33 private:
34 static API s_API;
35
36 protected:
37 // Need to see the utility
38 static glm::vec4 m_ClearColor;
39 };
40}
Definition RendererAPI.h:11