Elevate Engine 1
Loading...
Searching...
No Matches
RendererAPI.h
Go to the documentation of this file.
1#pragma once
2
3#include "glm/glm.hpp"
4#include <memory>
5
7
8namespace Elevate
9{
10 class VertexArray;
11 class LayerStack;
12}
13
14namespace Elevate
15{
17 {
18 Points,
19 Lines,
21 LineLoop, // OpenGL only
24 TriangleFan, // OpenGL only
26 };
27
29 {
30 public:
31 enum class GraphicAPI
32 {
33 None = 0,
34 OpenGL = 1,
35 };
36
37 public:
38 virtual void SetClearColor(const glm::vec4& color) const = 0;
39 virtual void SetViewport(int x, int y, int width, int height) const = 0;
40 virtual void Clear() const = 0;
41 virtual void FlushBuffers() const = 0;
42 virtual void ClearTextureBindings() const = 0;
43
44 virtual void DrawArray(const VertexArray* vao, DrawPrimitiveType primitive = DrawPrimitiveType::Triangles) const = 0;
45 virtual void SetCullingState(bool enabled) const = 0;
46 virtual void SetDepthWrittingState(bool enabled) const = 0;
47 virtual void SetDepthTestingState(bool enabled) const = 0;
48
49 inline static GraphicAPI GetAPI() { return s_ActiveAPI; }
50
51 protected:
52 // todo remove this
53 //std::unordered_map<std::shared_ptr<Shader>, std::vector<Model>> m_ModelStack;
54 //std::unordered_map<std::shared_ptr<Shader>, std::vector<Mesh>> m_MeshStack;
55
56 private:
57 static GraphicAPI s_ActiveAPI;
58 };
59}
virtual void SetCullingState(bool enabled) const =0
virtual void SetViewport(int x, int y, int width, int height) const =0
virtual void FlushBuffers() const =0
virtual void DrawArray(const VertexArray *vao, DrawPrimitiveType primitive=DrawPrimitiveType::Triangles) const =0
virtual void Clear() const =0
virtual void SetClearColor(const glm::vec4 &color) const =0
virtual void SetDepthWrittingState(bool enabled) const =0
virtual void ClearTextureBindings() const =0
virtual void SetDepthTestingState(bool enabled) const =0
static GraphicAPI GetAPI()
Definition RendererAPI.h:49
DrawPrimitiveType
Definition RendererAPI.h:17