Renderer.h 820 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef RENDERER_H
  2. #define RENDERER_H
  3. #include <GL/glew.h>
  4. #include "utils/Types.h"
  5. class Renderer final {
  6. public:
  7. Renderer();
  8. ~Renderer();
  9. Renderer(const Renderer& other) = delete;
  10. Renderer(Renderer&& other) = delete;
  11. Renderer& operator=(const Renderer& other) = delete;
  12. Renderer& operator=(Renderer&& other) = delete;
  13. void setPointSize(float size);
  14. void drawPoint(float x, float y, uint color);
  15. void drawLine(float x, float y, float x2, float y2, uint color);
  16. private:
  17. void bind();
  18. void reset(u64 size);
  19. Renderer& add(float f);
  20. void draw(uint floatPerVertex);
  21. float getColorChannel(uint color, uint shifts) const;
  22. GLuint vertexArray;
  23. GLuint vertexBuffer;
  24. u64 bufferSize;
  25. u64 offset;
  26. u64 index;
  27. float* buffer;
  28. };
  29. #endif