2024-01-21 01:36:21 +11:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2024-02-20 23:42:19 +11:00
|
|
|
#include <unordered_map>
|
|
|
|
|
|
|
|
namespace Sim::Graphics
|
|
|
|
{
|
|
|
|
|
|
|
|
class Shader
|
2024-01-21 01:36:21 +11:00
|
|
|
{
|
2024-02-20 23:42:19 +11:00
|
|
|
unsigned int prog_id = 0;
|
2024-01-21 01:36:21 +11:00
|
|
|
|
2024-02-20 23:42:19 +11:00
|
|
|
std::unordered_map<const char*, unsigned int> uniform_locations;
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
static Shader MAIN;
|
|
|
|
static Shader BLUR;
|
2024-01-21 12:58:37 +11:00
|
|
|
|
2024-02-20 23:42:19 +11:00
|
|
|
Shader();
|
|
|
|
Shader(const Shader& o) = delete;
|
|
|
|
Shader(Shader&& o);
|
|
|
|
~Shader();
|
|
|
|
|
|
|
|
void load(const char* path, const char* file_vsh, const char* file_fsh);
|
|
|
|
void use();
|
|
|
|
|
|
|
|
unsigned int operator[](const char* pos);
|
|
|
|
};
|
2024-01-21 01:36:21 +11:00
|
|
|
|
|
|
|
};
|
|
|
|
|