#pragma once

#include "interfaces/IRenderingBackend.hpp"

#define TSE_OPENGL_VERSION_MAJOR 3
#define TSE_OPENGL_VERSION_MINOR 3

namespace TSE::OpenGL
{
    class OpenGLRenderingBackend : public IRenderingBackend
    {
        private:

        public:
        OpenGLRenderingBackend(Color _backgroundColor, bool _vsync);
        OpenGLRenderingBackend(Color _backgroundColor, bool _vsync, int _samples, bool _useseImGui);
        ~OpenGLRenderingBackend();

        void InitPreWindow() override;
        bool InitPostWindow() override;
        bool InitEnd() override;

        void onResize(int width, int height) override;
        void onUpdate() const override;
        void onClear() const override;
        void onClearDepthBuffer() const override;
    };
} // namespace OpenGL
