-GLhandleARB read_shader(const char* filename, GLenum type)
-{
- std::string shader_src = read_file(filename);
-
- GLhandleARB obj = glCreateShaderObjectARB(type);
- const GLchar* source[] = { shader_src.data() };
- const GLint length[] = { shader_src.size() };
- glShaderSource(obj, 1, source, length);
- glCompileShader(obj);
-
- GLchar info_log[4096];
- GLsizei log_length = sizeof(info_log) - 1;
- glGetShaderInfoLog(obj, log_length, &log_length, info_log);
- info_log[log_length] = 0;
- printf("shader compile log: %s\n", info_log);
-
- GLint status;
- glGetShaderiv(obj, GL_COMPILE_STATUS, &status);
- if (status == GL_FALSE) {
- exit(1);
- }
-
- return obj;
-}
-