#pragma once

#include <glad/glad.h>
#include <iostream>
#include <Texture.h>
#include <glm/glm.hpp>

class FrameBuffer
{
public:
    FrameBuffer();
    ~FrameBuffer();

    void RescaleFrameBuffer(int width, int height) const;
    void AttachTexture(int width, int height);
    void Bind() const;
    static void Unbind();
    void Shutdown() const;

    static FrameBuffer Create();

    Texture* GetFrameTexture() const;

private:
    unsigned int m_FBO{}, m_RBO{};
    Texture* m_Texture;
};