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);
buf[fsz] = '\0';
fclose(fp);
- create(buf, fsz, fname);
- return true;
+ return create(buf, fsz, fname);
+}
+
+SType Shader::get_type()
+{
+ return type;
}
ShaderProgram::ShaderProgram()
delete shaders[i];
}
}
-
-void ShaderProgram::add_shader(Shader *sdr)
-{
- assert(sdr->type < sizeof shaders / sizeof *shaders);
- shaders[sdr->type] = sdr;
-}
\ No newline at end of file