#pragma once

#include "Color.hpp"

namespace TSE
{
    class IWindow;

    class IRenderingBackend
    {
        protected:
        Color backgroundColor;
        bool vsync;
        int samples = 0;
        bool useseImGui = false;
        
        public:
        IWindow* window = nullptr;
        
        virtual void InitPreWindow() = 0;
        virtual bool InitPostWindow() = 0;
        virtual bool InitEnd() = 0;

        virtual void onResize(int width, int height) = 0;
        virtual void onUpdate() const = 0;
        virtual void onClear() const = 0;
        virtual void onClearDepthBuffer() const = 0;

    };
} // namespace TSE
