7#include "Framebuffer.h"
10#include "RenderCommandBuffer.h"
11#include "RenderCommandQueue.h"
12#include "VertexBuffer.h"
13#include "IndexBuffer.h"
14#include "RenderContext.h"
16#include "UniformBuffer.h"
18#include "UniformBufferSet.h"
19#include "ArrayTexture.h"
22#include "RendererCapabilities.h"
23#include "Renderer2DAPI.h"
25#include "LkEngine/Scene/Components.h"
59 virtual void BeginFrame() = 0;
60 virtual void EndFrame() = 0;
61 virtual void Clear() = 0;
65 bool InExplicitClear =
false) = 0;
73 const glm::mat4& InTransform,
74 const uint32_t IndexCount = 0) = 0;
81 const glm::mat4& Transform,
82 uint32_t IndexCount) = 0;
88 virtual void SetPrimitiveTopology(
const ERenderTopology InRenderTopology) = 0;
89 virtual void SetDepthFunction(
const EDepthFunction InDepthFunction) = 0;
90 virtual void SetDepthEnabled(
const bool Enabled) = 0;
94 FORCEINLINE
static ERendererAPI Get() {
return RendererAPI; }
95 static void SetAPI(ERendererAPI InRendererApiType);
97 FORCEINLINE
static std::string GetName()
101 case ERendererAPI::OpenGL:
return "OpenGL";
102 case ERendererAPI::Vulkan:
return "Vulkan";
106 LK_CORE_ASSERT(
false,
"Invalid render API");
110 static TObjectPtr<LRendererAPI> Create();
113 inline static ERendererAPI RendererAPI = ERendererAPI::OpenGL;
115 friend class LRenderer;
116 friend class LEditor;
126 FORCEINLINE
static constexpr const char* ToString(
const ERenderTopology RenderTopology)
128 switch (RenderTopology)
130 case ERenderTopology::Lines:
return "Lines";
131 case ERenderTopology::Triangles:
return "Triangles";
134 LK_CORE_ASSERT(
false);
Definition IndexBuffer.h:11
Definition RendererAPI.h:54
virtual void Initialize()=0
Initialize object.
virtual void Destroy()=0
Destroy object, releasing all resources.
Definition VertexBuffer.h:22
Definition ObjectPtr.h:102
#define LCLASS(Class)
Definition CoreMacros.h:226
ERenderTopology
Definition RendererAPI.h:39
Definition RendererCapabilities.h:10