move shaders into .glsl files and add #include feature

This commit is contained in:
2019-02-21 19:26:40 +01:00
parent 16eb9de358
commit eaab9c79e5
47 changed files with 1124 additions and 777 deletions

View File

@@ -40,6 +40,7 @@ enum class kShaderUniform : uint16_t
PatternScale = const_hash("pattern_scale"),
PatternBright = const_hash("pattern_bright"),
PatternContrast = const_hash("pattern_contr"),
PatternDepth = const_hash("pattern_depth"),
Colorize = const_hash("colorize"),
DualAlpha = const_hash("dual_alpha"),
};
@@ -73,10 +74,14 @@ enum class kShader : uint16_t
class Shader
{
std::string m_path;
std::map<kShaderUniform, GLuint> m_umap;
GLuint prog;
std::string read(const std::string& path);
public:
kShader name;
void parse_error(const char* msg, const char* code);
bool load(const std::string& path);
bool create(const char* vertex, const char* fragment);
void use();
void u_vec4(kShaderUniform id, const glm::vec4& v);
@@ -94,6 +99,7 @@ class ShaderManager
static Shader* m_current;
public:
static bool ext_framebuffer_fetch;
static bool load(kShader id, const std::string& path);
static bool create(kShader id, const char* vertex, const char* fragment);
static void use(kShader id);
static void use(const char* name);