fixed shader manager, added it
[demo] / src / shader.cc
index 8fa50ae..b8ca8ef 100644 (file)
@@ -2,6 +2,8 @@
 #include <stdio.h>
 #include "shader.h"
 
+ShaderProgram *current_program;
+
 Shader::Shader() {}
 Shader::~Shader()
 {
@@ -56,6 +58,8 @@ bool Shader::load(const char *fname, SType type)
 
 ShaderProgram::ShaderProgram()
 {
+       current_program = 0;
+
        int len = sizeof shaders / sizeof *shaders;
        for(int i=0; i<len; ++i) {
                shaders[i] = 0;
@@ -71,8 +75,13 @@ ShaderProgram::~ShaderProgram()
        }
 }
 
-void ShaderProgram::add_shader(Shader *sdr)
+// void ShaderProgram::add_shader(Shader *sdr)
+// {
+//     assert(sdr->type < sizeof shaders / sizeof *shaders);
+//     shaders[sdr->type] = sdr;
+// }
+
+ShaderProgram *get_current_program()
 {
-       assert(sdr->type < sizeof shaders / sizeof *shaders);
-       shaders[sdr->type] = sdr;
+       return current_program;
 }
\ No newline at end of file