#pragma once #include "../../Result.hpp" #include "../../types.hpp" #include "../../utils.hpp" #include "../../Vec.hpp" #include "Texture2D.hpp" #include namespace amalgine { class Uniform { DISABLE_COPY(Uniform) friend class ShaderProgram; friend class Result; public: Uniform(Uniform&&) = default; ~Uniform(); void set(float value); void set(const vec3f &value); void set(const glm::mat4 &value); void set(const Texture2D &texture); private: Uniform(){} Uniform(i32 uniform_id, u32 shader_program_id); void use(); private: i32 uniform_id; u32 program_id; }; }