Shader::Shader(string vFile, string fFile, string gFile) { program = glCreateProgram(); objects[SHADER_VERTEX] = GenerateShader(vFile,GL_VERTEX_SHADER); objects[SHADER_FRAGMENT] = GenerateShader(fFile,GL_FRAGMENT_SHADER); objects[SHADER_GEOMETRY] = 0; if(!gFile.empty()) { objects[SHADER_GEOMETRY] = GenerateShader(gFile,GL_GEOMETRY_SHADER); glAttachShader(program,objects[SHADER_GEOMETRY]); } glAttachShader(program,objects[SHADER_VERTEX]); glAttachShader(program,objects[SHADER_FRAGMENT]); SetDefaultAttributes(); }
/* Vertex Shader Functions! */ VertexShader::VertexShader(std::string name) : Shader(name, VERTEX_SHADER) { for(int i = 0; i < VERTEX_SIZE; ++i) { attributes[i] = 0; } SetDefaultAttributes(); }