#pragma once

#include "GL/gl3w.h"
#include "GL/gl.h"
#include "Types.hpp"

namespace TSE::OpenGL
{
    class buffer
    {
    protected:
        uint bufferID = 0;

    public:
        inline bool Initialized()
        {
            return bufferID != 0;
        }
        virtual void Bind() = 0;
        virtual void Unbind() = 0;

        inline virtual ~buffer()
        {
            glDeleteBuffers(1, &bufferID);
        }
    };
} // namespace TSE
