#pragma once

#include "Types.hpp"
#include <memory>

namespace TSE::OpenGL
{
    class ShaderPart
    {
    public:
        uint shaderPartID = 0;

        ShaderPart() = default;

    private:
        void Init(const string& str, int shaderType);

    public:
        ~ShaderPart();
        static std::unique_ptr<ShaderPart> LoadFromString(const std::string& str, int shaderType);
        static std::unique_ptr<ShaderPart> LoadFromPath(const std::string& path, int shaderType);
    };
} // namespace OpenGL
