5 ShaderProgram *current_program;
13 bool Shader::load(const char *fname, SType type)
21 fprintf(stderr, "Invalid shader type used in loading.\n");
28 if(!(fp = fopen(fname, "rb"))) {
29 fprintf(stderr, "Failed to open shader: %s.\n", fname);
33 fseek(fp, 0, SEEK_END);
38 if(!(buf = new char[fsz + 1])) {
39 fprintf(stderr, "Failed to allocate %u buffers.\n", fsz + 1);
45 if(fread(buf, 1, fsz, fp) < fsz) {
46 fprintf(stderr, "Failed to read shader: %s.\n", fname);
55 create(buf, fsz, fname);
59 ShaderProgram::ShaderProgram()
63 int len = sizeof shaders / sizeof *shaders;
64 for(int i=0; i<len; ++i) {
69 ShaderProgram::~ShaderProgram()
71 int len = sizeof shaders / sizeof *shaders;
73 for(int i=0; i<len; ++i) {
78 // void ShaderProgram::add_shader(Shader *sdr)
80 // assert(sdr->type < sizeof shaders / sizeof *shaders);
81 // shaders[sdr->type] = sdr;
84 ShaderProgram *get_current_program()
86 return current_program;