Advertisement
Ellesar

glCompileShader

Nov 23rd, 2011
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. + (BOOL)compileShader:(GLuint *)shader type:(GLenum)type file:(NSString *)file
  2. {
  3.     GLint status;
  4.     const GLchar *source;
  5.    
  6.     source = [[NSString stringWithContentsOfFile:file
  7.                                         encoding:NSUTF8StringEncoding
  8.                                            error:nil] UTF8String];
  9.     if (!source) {
  10.         NSLog(@"Failed to load shader (%s)", [file UTF8String]);
  11.         return NO;
  12.     }
  13.    
  14.     *shader = glCreateShader(type);
  15.     glShaderSource(*shader, 1, &source, NULL);
  16.     glCompileShader(*shader);
  17.    
  18. #if defined(DEBUG)
  19.     GLint logLength;
  20.     glGetShaderiv(*shader, GL_INFO_LOG_LENGTH, &logLength);
  21.     if (logLength > 0) {
  22.         GLchar *log = (GLchar *)malloc(logLength);
  23.         glGetShaderInfoLog(*shader, logLength, &logLength, log);
  24.         NSLog(@"Shader compile log:\n%s", log);
  25.         free(log);
  26.     }
  27. #endif
  28.    
  29.     glGetShaderiv(*shader, GL_COMPILE_STATUS, &status);
  30.     if (status == 0) {
  31.         glDeleteShader(*shader);
  32.         return NO;
  33.     }
  34.    
  35.     return YES;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement