no clue :) just to push it
[demo] / src / shader.cc
index b8ca8ef..2e530ec 100644 (file)
@@ -1,8 +1,7 @@
 #include <assert.h>
 #include <stdio.h>
-#include "shader.h"
 
-ShaderProgram *current_program;
+#include "shader.h"
 
 Shader::Shader() {}
 Shader::~Shader()
@@ -10,7 +9,7 @@ Shader::~Shader()
        type = SDR_UNKNOWN;
 }
 
-bool Shader::load(const char *fname, SType type)
+bool Shader::load(const char *fname, ShaderType type)
 {
        switch(type) {
        case SDR_VERTEX:
@@ -26,24 +25,17 @@ bool Shader::load(const char *fname, SType type)
        unsigned int fsz;
 
        if(!(fp = fopen(fname, "rb"))) {
-               fprintf(stderr, "Failed to open shader: %s.\n", fname);
-
+               fprintf(stderr, "Failed to open shader: %s\n", fname);
                return false;
        }
        fseek(fp, 0, SEEK_END);
        fsz = ftell(fp);
        rewind(fp);
 
-       char *buf;
-       if(!(buf = new char[fsz + 1])) {
-               fprintf(stderr, "Failed to allocate %u buffers.\n", fsz + 1);
-               fclose(fp);
-
-               return false;
-       }
+       char *buf = new char[fsz + 1];
 
        if(fread(buf, 1, fsz, fp) < fsz) {
-               fprintf(stderr, "Failed to read shader: %s.\n", fname);
+               fprintf(stderr, "Failed to read shader: %s\n", fname);
                delete buf;
                fclose(fp);
 
@@ -52,14 +44,16 @@ bool Shader::load(const char *fname, SType type)
        buf[fsz] = '\0';
        fclose(fp);
 
-       create(buf, fsz, fname);
-       return true;
+       return create(buf, fsz, fname);
 }
 
-ShaderProgram::ShaderProgram()
+ShaderType Shader::get_type()
 {
-       current_program = 0;
+       return type;
+}
 
+ShaderProgram::ShaderProgram()
+{
        int len = sizeof shaders / sizeof *shaders;
        for(int i=0; i<len; ++i) {
                shaders[i] = 0;
@@ -74,14 +68,3 @@ ShaderProgram::~ShaderProgram()
                delete shaders[i];
        }
 }
-
-// void ShaderProgram::add_shader(Shader *sdr)
-// {
-//     assert(sdr->type < sizeof shaders / sizeof *shaders);
-//     shaders[sdr->type] = sdr;
-// }
-
-ShaderProgram *get_current_program()
-{
-       return current_program;
-}
\ No newline at end of file