ctaza/shader.hpp

37 lines
861 B
C++

#pragma once
#include <stdio.h>
#include <glad.h>
#include <glm/glm.hpp>
#include <glm/gtc/type_ptr.hpp>
#include "u.hpp"
#include "io.hpp"
struct VertexShader {
u32 id;
VertexShader(std::string path);
~VertexShader();
};
struct FragmentShader {
u32 id;
FragmentShader(std::string path);
~FragmentShader();
};
struct Shader {
u32 id;
Shader(VertexShader v, FragmentShader f);
Shader(std::string vpath, std::string fpath);
void use() const;
void set_int(const char *name, int value) const;
void set_int(const std::string &name, int value) const;
void set_float(const char *name, float value) const;
void set_float(const std::string &name, float value) const;
void set_mat4(const char *name, const glm::mat4 &mat) const;
void set_mat4(const std::string &name, const glm::mat4 &mat) const;
};