diff options
Diffstat (limited to 'include/llmr/renderer/painter.hpp')
-rw-r--r-- | include/llmr/renderer/painter.hpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/include/llmr/renderer/painter.hpp b/include/llmr/renderer/painter.hpp new file mode 100644 index 0000000000..ac6012b0d0 --- /dev/null +++ b/include/llmr/renderer/painter.hpp @@ -0,0 +1,55 @@ +#ifndef LLMR_RENDERER_PAINTER +#define LLMR_RENDERER_PAINTER + +#include "../platform/gl.hpp" + +#include "shader-fill.hpp" +#include "shader-line.hpp" + +namespace llmr { + +class platform; +class transform; +class tile; + +class painter { +public: + painter(class platform *platform); + + void setup(); + void teardown(); + + void resize(GLuint new_width, GLuint new_height); + void viewport(); + + + void clear(); + void render(tile *tile); + + void switchShader(Shader *shader, float matrix[16]); + void setTransform(transform *transform); + +private: + void setupShaders(); + void changeMatrix(); + +public: + +private: + platform *platform; + transform *transform; + GLuint width, height; + GLfloat matrix[16]; + + Shader *currentShader; + FillShader *fillShader; + LineShader *lineShader; + + GLuint vertexArray; + GLuint triangleVertexBuffer; + GLuint fillVertexBuffer; +}; + +} + +#endif |