Renderer.h 1.2 KB

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