shader auto reload

This commit is contained in:
2019-02-21 20:20:43 +01:00
parent eaab9c79e5
commit 78ca0ee6ad
7 changed files with 77 additions and 15 deletions

View File

@@ -74,6 +74,7 @@ enum class kShader : uint16_t
class Shader
{
std::map<std::string, struct stat> m_deps;
std::string m_path;
std::map<kShaderUniform, GLuint> m_umap;
GLuint prog;
@@ -82,7 +83,9 @@ public:
kShader name;
void parse_error(const char* msg, const char* code);
bool load(const std::string& path);
bool reload();
bool create(const char* vertex, const char* fragment);
void destroy();
void use();
void u_vec4(kShaderUniform id, const glm::vec4& v);
void u_vec3(kShaderUniform id, const glm::vec3& v);
@@ -100,6 +103,7 @@ class ShaderManager
public:
static bool ext_framebuffer_fetch;
static bool load(kShader id, const std::string& path);
static bool reload();
static bool create(kShader id, const char* vertex, const char* fragment);
static void use(kShader id);
static void use(const char* name);