11#pragma once
22
3- #include " common/Singleton.tcc"
4-
53#include " modules/graphics/Graphics.tcc"
6- #include " modules/graphics/Shader.tcc"
74#include " modules/graphics/renderstate.hpp"
85
96#include " modules/graphics/vertex.hpp"
10-
11- #include < array>
12- #include < vector>
7+ #include < cstdint>
138
149namespace love
1510{
@@ -19,8 +14,33 @@ namespace love
1914 RendererBase ()
2015 {}
2116
17+ virtual void init () = 0;
18+
19+ virtual void close () = 0;
20+
21+ virtual void clearColor (const Color& color) = 0;
22+
23+ virtual void clear (double depth, int stencil) = 0;
24+
25+ virtual void setClearDepth (double depth) = 0;
26+
27+ virtual void setClearStencil (int stencil) = 0;
28+
29+ virtual void setStencilState (const StencilState& state) = 0;
30+
31+ virtual void setViewport (const Rect& viewport) = 0;
32+
33+ virtual void setScissor (const Rect& scissor) = 0;
34+
35+ virtual void setCullMode (CullMode mode) = 0;
36+
37+ virtual void setVertexAttributes (const VertexAttributes& attributes,
38+ const BufferBindings& buffers) = 0;
39+
2240 virtual void prepareDraw (GraphicsBase* graphics) = 0;
2341
42+ virtual void present () = 0;
43+
2444 bool isInFrame () const
2545 {
2646 return this ->inFrame ;
@@ -29,17 +49,23 @@ namespace love
2949 protected:
3050 struct ContextBase
3151 {
32- bool dirtyProjection;
33-
3452 CullMode cullMode;
3553 ColorChannelMask colorMask;
3654 BlendState blendState;
3755 StencilState stencilState;
3856
3957 Rect scissor;
4058 Rect viewport;
59+
60+ uint8_t currentTextureUnit;
61+ bool depthWrites;
4162 };
4263
64+ struct State
65+ {
66+ uint32_t enabledAttribArrays;
67+ } renderState;
68+
4369 bool initialized = false ;
4470 bool inFrame = false ;
4571 };
0 commit comments