41 virtual void BeginScene(
const LSceneCamera& Camera,
const glm::mat4& Transform) = 0;
42 virtual void BeginScene(
const glm::mat4& Transform) = 0;
43 virtual void Flush() = 0;
44 virtual void EndScene() = 0;
48 virtual void DrawQuad(
const glm::mat4& Transform,
const glm::vec4& Color) = 0;
49 virtual void DrawQuad(
const glm::vec2& Position,
const glm::vec2& Size,
const glm::vec4& Color) = 0;
50 virtual void DrawLine(
const glm::vec2& P0,
const glm::vec2& P1,
const glm::vec4& Color) = 0;
52 virtual float GetLineWidth() = 0;
53 virtual void SetLineWidth(
const float NewLineWidth) = 0;
64 virtual FRenderer2DStatistics GetStatistics() = 0;
65 virtual void ResetStatistics() = 0;
69 uint32_t DrawCalls = 0;
70 uint32_t QuadCount = 0;
71 uint32_t QuadVertexArray_RendererID = 0;
72 uint32_t QuadVertexBuffer_RendererID = 0;
73 uint32_t LineCount = 0;
75 uint32_t GetTotalVertexCount()
const {
return QuadCount * 4; }
76 uint32_t GetTotalIndexCount()
const {
return QuadCount * 6; }
79 inline static constexpr glm::vec2 TextureCoords[] = {
88 virtual void StartBatch() = 0;
89 virtual void NextBatch() = 0;
91 virtual void AddQuadBuffer() = 0;
92 virtual void AddLineBuffer() = 0;
93 virtual FQuadVertex*& GetWriteableQuadBuffer() = 0;
94 virtual FLineVertex*& GetWriteableLineBuffer() = 0;