| 108 | } |
| 109 | |
| 110 | GLuint createShader(const char source[], int type) { |
| 111 | GLint status; |
| 112 | char msg[512]; |
| 113 | GLuint shader = glCreateShader(type); |
| 114 | glShaderSource(shader, 1, (const GLchar**)(&source), NULL); |
| 115 | glCompileShader(shader); |
| 116 | glGetShaderiv(shader, GL_COMPILE_STATUS, &status); |
| 117 | if (status == GL_FALSE) { |
| 118 | glGetShaderInfoLog(shader, sizeof msg, NULL, msg); |
| 119 | printf("Shader info: \"%s\"\n", msg); |
| 120 | } |
| 121 | assert(status == GL_TRUE); |
| 122 | return shader; |
| 123 | } |
| 124 | |
| 125 | static void gl_init(void) { |
| 126 | GLuint program = glCreateProgram(); |