2024-11-17 23:23:25 -06:00

44 lines
1.0 KiB
C++

#pragma once
#ifndef _NB_SHADER
#define _NB_SHADER
#include <GLLoad.h>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <exception>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
namespace NB {
class ShaderError : public std::runtime_error {
public:
ShaderError(const std::string&, const char* shad=nullptr, const std::string& file="", int line=-1);
protected:
std::string formatString(const std::string&, const char* shad=nullptr, const std::string& file="", int line=-1);
};
class Shader {
public:
Shader(const char* vertexPath, const char* fragmentPath);
Shader();
Shader(const Shader&);
Shader& operator=(const Shader&);
void use() const;
void setBool(const std::string& name, bool value) const;
void setInt(const std::string& name, int value) const;
void setFloat(const std::string& name, float value) const;
void setMat4(const std::string& name, glm::mat4& value) const;
unsigned int id;
private:
};
}
#endif