Renderer.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef RENDERER_H
  2. #define RENDERER_H
  3. #include "rendering/wrapper/Shader.h"
  4. #include "rendering/WindowSize.h"
  5. #include "math/MatrixStack.h"
  6. #include "rendering/FontRenderer.h"
  7. #include "rendering/ColorRenderer.h"
  8. class Renderer final {
  9. public:
  10. Renderer(const WindowSize& size, Shader& shader);
  11. void pop();
  12. void push();
  13. void update();
  14. Renderer& scale(float sx, float sy);
  15. Renderer& scale(float s);
  16. Renderer& translate(float tx, float ty);
  17. Renderer& translateX(float tx);
  18. Renderer& translateY(float ty);
  19. Renderer& translateTo(float tx, float ty);
  20. Renderer& rotate(float degrees);
  21. void drawString(float x, float y, const char* text);
  22. void drawTriangle(const ColorRenderer::Vertex& v1, const ColorRenderer::Vertex& v2, const ColorRenderer::Vertex& v3);
  23. void drawTriangle(float x1, float y1, float x2, float y2, float x3, float y3, u32 color);
  24. void drawRectangle(float x, float y, float width, float height, u32 color);
  25. private:
  26. void setTextureMode(bool b);
  27. void setColorMode(bool b);
  28. const WindowSize& size;
  29. Shader& shader;
  30. bool texture;
  31. bool color;
  32. MatrixStack stack;
  33. FontRenderer fontRenderer;
  34. ColorRenderer colorRenderer;
  35. };
  36. #endif