//
// Created by sebastian on 06.08.26.
//

#ifndef COLORRACE_GUISHADER_H
#define COLORRACE_GUISHADER_H
#include <functional>

#include "glm/fwd.hpp"
#include "utils/openglWrapper/shader/ShaderProgram.h"
#include "utils/openglWrapper/shader/UniformValue.h"

namespace engine::shader {
    class GuiShader : public ShaderProgram {
    public:
        GuiShader() : ShaderProgram("assets/shaders/gui.vert", "assets/shaders/gui.frag") {
            storeAllUniformLocations({
                std::ref(transformationMatrix)
            });
        }
        void loadTransformationMatrix(const glm::mat4& matrix) {
            transformationMatrix.load(matrix);
        }
    private:
        UniformValue<glm::mat4> transformationMatrix{"transformationMatrix"};
    };
}


#endif //COLORRACE_GUISHADER_H
