//
// Created by sebastian on 29.07.26.
//

#ifndef COLORRACE_UNIFORM_H
#define COLORRACE_UNIFORM_H
#include <string>


namespace engine {
    class Uniform {
    public:
        explicit Uniform(std::string name) : m_name(std::move(name)) {}
        virtual ~Uniform() = default;

        Uniform(const Uniform&) = delete;
        Uniform& operator=(const Uniform&) = delete;

        void storeUniformLocation(unsigned int programID);
    protected:
        int getLocation() const;
    private:
        std::string m_name;
        int m_location = -1;
        bool m_locationSet = false;
    };
}


#endif //COLORRACE_UNIFORM_H
