no clue :) just to push it
[demo] / src / shader.cc
index f8f1c15..2e530ec 100644 (file)
@@ -1,5 +1,6 @@
 #include <assert.h>
 #include <stdio.h>
+
 #include "shader.h"
 
 Shader::Shader() {}
@@ -8,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:
@@ -24,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);
 
@@ -50,8 +44,12 @@ bool Shader::load(const char *fname, SType type)
        buf[fsz] = '\0';
        fclose(fp);
 
-       create(buf, fsz, fname);
-       return true;
+       return create(buf, fsz, fname);
+}
+
+ShaderType Shader::get_type()
+{
+       return type;
 }
 
 ShaderProgram::ShaderProgram()
@@ -69,4 +67,4 @@ ShaderProgram::~ShaderProgram()
        for(int i=0; i<len; ++i) {
                delete shaders[i];
        }
-}
\ No newline at end of file
+}