10 #include <GLES2/gl2ext.h> 14 #include <OpenGLES/ES2/gl.h> 15 #include <OpenGLES/ES2/glext.h> 24 #include <OpenGL/gl3.h> 37 static unsigned int createProgram(
const char * vertexString,
const char * fragmentString)
39 GLuint vertexShader =
loadShader(GL_VERTEX_SHADER, vertexString);
45 GLuint pixelShader =
loadShader(GL_FRAGMENT_SHADER, fragmentString);
51 GLuint program = glCreateProgram();
54 glAttachShader(program, vertexShader);
56 glAttachShader(program, pixelShader);
58 glLinkProgram(program);
59 GLint linkStatus = GL_FALSE;
60 glGetProgramiv(program, GL_LINK_STATUS, &linkStatus);
61 if (linkStatus != GL_TRUE)
64 glGetProgramiv(program, GL_INFO_LOG_LENGTH, &bufLength);
67 char *buf = (
char *)malloc(bufLength);
70 glGetProgramInfoLog(program, bufLength, NULL, buf);
71 printf(
"Could not link program:\n%s\n", buf);
75 glDeleteProgram(program);
82 static unsigned int loadShader(
unsigned int shaderType,
const char *pSource)
84 GLuint shader = glCreateShader((GLenum)shaderType);
87 glShaderSource(shader, 1, &pSource, NULL);
88 glCompileShader(shader);
90 glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
94 glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
97 char *buf = (
char *)malloc(infoLen);
100 glGetShaderInfoLog(shader, infoLen, NULL, buf);
101 printf(
"Could not compile shader %d:\n%s\n", shaderType, buf);
104 glDeleteShader(shader);
114 for (GLint error = glGetError(); error; error = glGetError())
116 printf(
"after %s() glError (0x%x)\n", op, error);
static void checkGlError(const char *op)
Definition: ShaderUtil.h:112
Shader compile utility.
Definition: ShaderUtil.h:34
static unsigned int createProgram(const char *vertexString, const char *fragmentString)
Definition: ShaderUtil.h:37
static unsigned int loadShader(unsigned int shaderType, const char *pSource)
Definition: ShaderUtil.h:82