#ifndef RENDERER_H #define RENDERER_H #include #include "utils/Types.h" class Renderer final { public: Renderer(); ~Renderer(); Renderer(const Renderer& other) = delete; Renderer(Renderer&& other) = delete; Renderer& operator=(const Renderer& other) = delete; Renderer& operator=(Renderer&& other) = delete; void setPointSize(float size); void drawPoint(float x, float y, uint color); void drawLine(float x, float y, float x2, float y2, uint color); private: void bind(); void reset(u64 size); Renderer& add(float f); void draw(uint floatPerVertex); float getColorChannel(uint color, uint shifts) const; GLuint vertexArray; GLuint vertexBuffer; u64 bufferSize; u64 offset; u64 index; float* buffer; }; #endif