1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
void System::SysCreateProgram(GLuint &program)
{
program = glCreateProgram();
std::vector <GLuint> shader_array;
std::string vertexshaderstr, fragmentshaderstr;
SysReadFileToStr("FragmentShader.txt", fragmentshaderstr);
SysReadFileToStr("VertexShader.vs", vertexshaderstr);
shader_array.push_back(SysCreateShader(GL_VERTEX_SHADER, vertexshaderstr));
shader_array.push_back(SysCreateShader(GL_FRAGMENT_SHADER, fragmentshaderstr));
glAttachShader(program, shader_array[0]);
glAttachShader(program, shader_array[1]);
glLinkProgram(program);
GLint status;
glGetProgramiv(program, GL_LINK_STATUS, &status);
if (status == GL_FALSE)
{
int error_log_length;
GLchar *error_log = new GLchar[300];
glGetProgramiv(program, GL_INFO_LOG_LENGTH, &error_log_length);
glGetProgramInfoLog(program, error_log_length, NULL, error_log);
fprintf(stderr, "Lingkage error: %s \n", error_log);
delete [] error_log;
}
sysprogram = program;
}
|