X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fshader.cc;h=2e530ecff9dd667b4420e4f759b388018fbeb378;hb=f6ceb163227d00d7f97df1fc2dfbdd419c56277e;hp=f8f1c15f406b40f73c7809f4a6484923f5971fb7;hpb=fcd6773bc770425ede4b47a84eef7cc78342542c;p=demo diff --git a/src/shader.cc b/src/shader.cc index f8f1c15..2e530ec 100644 --- a/src/shader.cc +++ b/src/shader.cc @@ -1,5 +1,6 @@ #include #include + #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