#ifndef OPENGL_HPP
#define OPENGL_HPP

// Includes
#include <SDL3/SDL_opengl.h>
#include "engine/sdl.hpp"
#include "engine/buffers.hpp"
#include "engine/shaders.hpp"
#include "engine/camera.hpp"
#include "engine/textures.hpp"

// OpenGL Context Class
class OpenGLContext {
public:
    OpenGLContext(SDLWindow& window);
    ~OpenGLContext();

    bool isInitialized() const;
    void makeCurrent();
    void swapBuffers();
    float getFrameTime();

private:
    SDLWindow& window;
    SDL_GLContext glContext;

    Uint32 lastTime;
    float frameTime;

};

#endif
