Renderer.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef RENDERER_H
  2. #define RENDERER_H
  3. #include "gaming-core/wrapper/Shader.h"
  4. #include "math/MatrixStack.h"
  5. #include "rendering/FontRenderer.h"
  6. #include "rendering/ColorRenderer.h"
  7. class Renderer final {
  8. public:
  9. Renderer(Shader& shader);
  10. void pop();
  11. void push();
  12. void update();
  13. Renderer& scale(float sx, float sy);
  14. Renderer& scale(float s);
  15. Renderer& translate(float tx, float ty);
  16. Renderer& translateX(float tx);
  17. Renderer& translateY(float ty);
  18. Renderer& translateTo(float tx, float ty);
  19. Renderer& rotate(float degrees);
  20. void setStringSize(int size);
  21. float 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, Color4 color);
  24. void drawRectangle(float x, float y, float width, float height, Color4 color);
  25. private:
  26. void setTextureMode(bool b);
  27. void setColorMode(bool b);
  28. Shader& shader;
  29. bool texture;
  30. bool color;
  31. MatrixStack<10> stack;
  32. FontRenderer fontRenderer;
  33. ColorRenderer colorRenderer;
  34. };
  35. #endif