fast-nuclear-sim/src/graphics/shader.hpp

35 lines
569 B
C++

#pragma once
#include <unordered_map>
namespace Sim::Graphics
{
class Shader
{
unsigned int prog_id = 0;
std::unordered_map<const char*, unsigned int> uniform_locations;
public:
static Shader MAIN;
static Shader BLUR;
static Shader LIGHT;
Shader();
Shader(const Shader& o) = delete;
Shader(Shader&& o);
~Shader();
void load(const char* path, const char* file_vsh, const char* file_gsh, const char* file_fsh);
void load(const char* path, const char* file_vsh, const char* file_fsh);
void use();
unsigned int operator[](const char* pos);
};
};