#pragma once #include #include #include #include #include FT_FREETYPE_H #include #include namespace hibis::rglcore { class RGLCore : public Renderer { public: RGLCore(std::string title, IntVec2 size, LoggerCallback callback); ~RGLCore(); // Draw void clearScreen(Color col = Color {0, 0, 0, 255}) override; void renderCurrent() override; void drawText(Resource* resource, std::string text, IntVec2 pos, Color color) override; void drawTexture(Texture* resource, IntRect size) override; void useShader(Shader* shader, Point2D points[3]) override; void stopUsingShaders() override; // Pre and Post draw void preDraw() override; void postDraw() override; // Update void update() override; // Util void compileShader(Shader* shader) override; void toggleWireframe() override; void setWindowTitle(std::string title) override; private: GLFWwindow* mWindow; std::unordered_map mTextures; std::string loadFile(std::string path); }; }