Renderer.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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 setStringSize(int size);
  22. float drawString(float x, float y, const char* text);
  23. void drawTriangle(const ColorRenderer::Vertex& v1, const ColorRenderer::Vertex& v2, const ColorRenderer::Vertex& v3);
  24. void drawTriangle(float x1, float y1, float x2, float y2, float x3, float y3, Color color);
  25. void drawRectangle(float x, float y, float width, float height, Color color);
  26. private:
  27. void setTextureMode(bool b);
  28. void setColorMode(bool b);
  29. const WindowSize& size;
  30. Shader& shader;
  31. bool texture;
  32. bool color;
  33. MatrixStack stack;
  34. FontRenderer fontRenderer;
  35. ColorRenderer colorRenderer;
  36. };
  37. #endif