typedef void opengl_BindTexture(GLenum target, GLuint texture);
typedef void opengl_BlendFunc(GLenum sfactor, GLenum dfactor);
typedef void opengl_Clear(GLbitfield mask);
typedef void opengl_ClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
typedef void opengl_ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
typedef void opengl_ClearDepth(GLclampd depth);
typedef void opengl_ClearIndex(GLfloat c);
typedef void opengl_ClearStencil(GLint s);
typedef void opengl_ClipPlane(GLenum plane, const GLdouble *equation);
typedef void opengl_CullFace(GLenum mode);
typedef void opengl_DeleteTextures(GLsizei n, const GLuint *textures);
typedef void opengl_Disable(GLenum cap);
typedef void opengl_DrawArrays(GLenum mode, GLint first, GLsizei count);
typedef void opengl_DrawBuffer(GLenum mode);
typedef void opengl_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
typedef void opengl_DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
typedef void opengl_Enable(GLenum cap);
typedef void opengl_GenTextures(GLsizei n, GLuint *textures);
typedef void opengl_GetClipPlane(GLenum plane, GLdouble *equation);
typedef void opengl_GetDoublev(GLenum pname, GLdouble *params);
typedef GLenum opengl_GetError(void);
typedef void opengl_GetFloatv(GLenum pname, GLfloat *params);
typedef void opengl_GetIntegerv(GLenum pname, GLint *params);
typedef void opengl_GetPointerv(GLenum pname, GLvoid* *params);
typedef const GLubyte * opengl_GetString(GLenum name);
typedef void opengl_GetTexEnvfv(GLenum target, GLenum pname, GLfloat *params);
typedef void opengl_GetTexEnviv(GLenum target, GLenum pname, GLint *params);
typedef void opengl_GetTexGendv(GLenum coord, GLenum pname, GLdouble *params);
typedef void opengl_GetTexGenfv(GLenum coord, GLenum pname, GLfloat *params);
typedef void opengl_GetTexGeniv(GLenum coord, GLenum pname, GLint *params);
typedef void opengl_GetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
typedef void opengl_GetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
typedef void opengl_GetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
typedef void opengl_GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
typedef void opengl_GetTexParameteriv(GLenum target, GLenum pname, GLint *params);
typedef void opengl_Hint(GLenum target, GLenum mode);
typedef GLboolean opengl_IsTexture(GLuint texture);
typedef void opengl_LineWidth(GLfloat width);
typedef void opengl_ListBase(GLuint base);
typedef void opengl_LoadName(GLuint name);
typedef void opengl_LogicOp(GLenum opcode);
typedef void opengl_PointSize(GLfloat size);
typedef void opengl_PolygonMode(GLenum face, GLenum mode);
typedef void opengl_Scissor(GLint x, GLint y, GLsizei width, GLsizei height);
typedef void opengl_TexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void opengl_TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void opengl_TexParameterf(GLenum target, GLenum pname, GLfloat param);
typedef void opengl_TexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
typedef void opengl_TexParameteri(GLenum target, GLenum pname, GLint param);
typedef void opengl_TexParameteriv(GLenum target, GLenum pname, const GLint *params);
typedef void opengl_TexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
typedef void opengl_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
typedef void opengl_CompressedTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *pixels);
typedef void opengl_ActiveTexture(GLenum texture);
typedef void opengl_Viewport(GLint x, GLint y, GLsizei width, GLsizei height);
typedef void opengl_GenBuffers(GLsizei n, GLuint *buffers);
typedef void opengl_BindBuffer(GLenum target, GLuint buffer);
typedef void opengl_BufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage);
typedef void opengl_BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
typedef void opengl_GenVertexArrays(GLsizei n, GLuint *arrays);
typedef void opengl_BindVertexArray(GLenum array);
typedef GLint opengl_GetAttribLocation(GLuint program, const GLchar *name);
typedef void opengl_EnableVertexAttribArray(GLuint index);
typedef void opengl_DisableVertexAttribArray(GLuint index);
typedef void opengl_VertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
typedef void opengl_VertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
typedef void opengl_VertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
typedef void opengl_VertexAttribDivisor(GLuint index, GLuint divisor);
typedef GLuint opengl_CreateShader(GLenum type);
typedef void opengl_ShaderSource(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
typedef void opengl_CompileShader(GLuint shader);
typedef void opengl_DeleteShader(GLuint shader);
typedef void opengl_GetShaderiv(GLuint shader, GLenum pname, GLint *params);
typedef void opengl_GetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
typedef GLuint opengl_CreateProgram(void);
typedef void opengl_UseProgram(GLuint program);
typedef void opengl_AttachShader(GLuint program, GLuint shader);
typedef void opengl_DeleteProgram(GLuint program);
typedef void opengl_LinkProgram(GLuint program);
typedef void opengl_GetProgramiv(GLuint program, GLenum pname, GLint *params);
typedef void opengl_GetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
typedef GLint opengl_GetUniformLocation(GLuint program, const GLchar *name);
typedef void opengl_Uniform1i(GLint location, GLint v0);
typedef void opengl_Uniform2f(GLint location, GLfloat v0, GLfloat v1);
typedef void opengl_Uniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
typedef void opengl_UniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void opengl_DebugMessageCallback(void (*)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *, const void *), const void *userParam);

global opengl_BindTexture *glBindTexture = 0;
global opengl_BlendFunc *glBlendFunc = 0;
global opengl_Clear *glClear = 0;
global opengl_ClearAccum *glClearAccum = 0;
global opengl_ClearColor *glClearColor = 0;
global opengl_ClearDepth *glClearDepth = 0;
global opengl_ClearIndex *glClearIndex = 0;
global opengl_ClearStencil *glClearStencil = 0;
global opengl_ClipPlane *glClipPlane = 0;
global opengl_CullFace *glCullFace = 0;
global opengl_DeleteTextures *glDeleteTextures = 0;
global opengl_Disable *glDisable = 0;
global opengl_DrawArrays *glDrawArrays = 0;
global opengl_DrawBuffer *glDrawBuffer = 0;
global opengl_DrawElements *glDrawElements = 0;
global opengl_DrawArraysInstanced *glDrawArraysInstanced = 0;
global opengl_Enable *glEnable = 0;
global opengl_GenTextures *glGenTextures = 0;
global opengl_GetClipPlane *glGetClipPlane = 0;
global opengl_GetDoublev *glGetDoublev = 0;
global opengl_GetError *glGetError = 0;
global opengl_GetFloatv *glGetFloatv = 0;
global opengl_GetIntegerv *glGetIntegerv = 0;
global opengl_GetPointerv *glGetPointerv = 0;
global opengl_GetString *glGetString = 0;
global opengl_GetTexEnvfv *glGetTexEnvfv = 0;
global opengl_GetTexEnviv *glGetTexEnviv = 0;
global opengl_GetTexGendv *glGetTexGendv = 0;
global opengl_GetTexGenfv *glGetTexGenfv = 0;
global opengl_GetTexGeniv *glGetTexGeniv = 0;
global opengl_GetTexImage *glGetTexImage = 0;
global opengl_GetTexLevelParameterfv *glGetTexLevelParameterfv = 0;
global opengl_GetTexLevelParameteriv *glGetTexLevelParameteriv = 0;
global opengl_GetTexParameterfv *glGetTexParameterfv = 0;
global opengl_GetTexParameteriv *glGetTexParameteriv = 0;
global opengl_Hint *glHint = 0;
global opengl_IsTexture *glIsTexture = 0;
global opengl_LineWidth *glLineWidth = 0;
global opengl_ListBase *glListBase = 0;
global opengl_LoadName *glLoadName = 0;
global opengl_LogicOp *glLogicOp = 0;
global opengl_PointSize *glPointSize = 0;
global opengl_PolygonMode *glPolygonMode = 0;
global opengl_Scissor *glScissor = 0;
global opengl_TexImage1D *glTexImage1D = 0;
global opengl_TexImage2D *glTexImage2D = 0;
global opengl_TexParameterf *glTexParameterf = 0;
global opengl_TexParameterfv *glTexParameterfv = 0;
global opengl_TexParameteri *glTexParameteri = 0;
global opengl_TexParameteriv *glTexParameteriv = 0;
global opengl_TexSubImage1D *glTexSubImage1D = 0;
global opengl_TexSubImage2D *glTexSubImage2D = 0;
global opengl_CompressedTexImage2D *glCompressedTexImage2D = 0;
global opengl_ActiveTexture *glActiveTexture = 0;
global opengl_Viewport *glViewport = 0;
global opengl_GenBuffers *glGenBuffers = 0;
global opengl_BindBuffer *glBindBuffer = 0;
global opengl_BufferData *glBufferData = 0;
global opengl_BufferSubData *glBufferSubData = 0;
global opengl_GenVertexArrays *glGenVertexArrays = 0;
global opengl_BindVertexArray *glBindVertexArray = 0;
global opengl_GetAttribLocation *glGetAttribLocation = 0;
global opengl_EnableVertexAttribArray *glEnableVertexAttribArray = 0;
global opengl_DisableVertexAttribArray *glDisableVertexAttribArray = 0;
global opengl_VertexAttribPointer *glVertexAttribPointer = 0;
global opengl_VertexAttribIPointer *glVertexAttribIPointer = 0;
global opengl_VertexAttribLPointer *glVertexAttribLPointer = 0;
global opengl_VertexAttribDivisor *glVertexAttribDivisor = 0;
global opengl_CreateShader *glCreateShader = 0;
global opengl_ShaderSource *glShaderSource = 0;
global opengl_CompileShader *glCompileShader = 0;
global opengl_DeleteShader *glDeleteShader = 0;
global opengl_GetShaderiv *glGetShaderiv = 0;
global opengl_GetShaderInfoLog *glGetShaderInfoLog = 0;
global opengl_CreateProgram *glCreateProgram = 0;
global opengl_UseProgram *glUseProgram = 0;
global opengl_AttachShader *glAttachShader = 0;
global opengl_DeleteProgram *glDeleteProgram = 0;
global opengl_LinkProgram *glLinkProgram = 0;
global opengl_GetProgramiv *glGetProgramiv = 0;
global opengl_GetProgramInfoLog *glGetProgramInfoLog = 0;
global opengl_GetUniformLocation *glGetUniformLocation = 0;
global opengl_Uniform1i *glUniform1i = 0;
global opengl_Uniform2f *glUniform2f = 0;
global opengl_Uniform3f *glUniform3f = 0;
global opengl_UniformMatrix4fv *glUniformMatrix4fv = 0;
global opengl_DebugMessageCallback *glDebugMessageCallback = 0;

extern void *OpenGL_LoadFunction(char *);
static void OpenGL_LoadAllFunctions(void)
{
glBindTexture = (opengl_BindTexture *)OpenGL_LoadFunction("glBindTexture");
glBlendFunc = (opengl_BlendFunc *)OpenGL_LoadFunction("glBlendFunc");
glClear = (opengl_Clear *)OpenGL_LoadFunction("glClear");
glClearAccum = (opengl_ClearAccum *)OpenGL_LoadFunction("glClearAccum");
glClearColor = (opengl_ClearColor *)OpenGL_LoadFunction("glClearColor");
glClearDepth = (opengl_ClearDepth *)OpenGL_LoadFunction("glClearDepth");
glClearIndex = (opengl_ClearIndex *)OpenGL_LoadFunction("glClearIndex");
glClearStencil = (opengl_ClearStencil *)OpenGL_LoadFunction("glClearStencil");
glClipPlane = (opengl_ClipPlane *)OpenGL_LoadFunction("glClipPlane");
glCullFace = (opengl_CullFace *)OpenGL_LoadFunction("glCullFace");
glDeleteTextures = (opengl_DeleteTextures *)OpenGL_LoadFunction("glDeleteTextures");
glDisable = (opengl_Disable *)OpenGL_LoadFunction("glDisable");
glDrawArrays = (opengl_DrawArrays *)OpenGL_LoadFunction("glDrawArrays");
glDrawBuffer = (opengl_DrawBuffer *)OpenGL_LoadFunction("glDrawBuffer");
glDrawElements = (opengl_DrawElements *)OpenGL_LoadFunction("glDrawElements");
glDrawArraysInstanced = (opengl_DrawArraysInstanced *)OpenGL_LoadFunction("glDrawArraysInstanced");
glEnable = (opengl_Enable *)OpenGL_LoadFunction("glEnable");
glGenTextures = (opengl_GenTextures *)OpenGL_LoadFunction("glGenTextures");
glGetClipPlane = (opengl_GetClipPlane *)OpenGL_LoadFunction("glGetClipPlane");
glGetDoublev = (opengl_GetDoublev *)OpenGL_LoadFunction("glGetDoublev");
glGetError = (opengl_GetError *)OpenGL_LoadFunction("glGetError");
glGetFloatv = (opengl_GetFloatv *)OpenGL_LoadFunction("glGetFloatv");
glGetIntegerv = (opengl_GetIntegerv *)OpenGL_LoadFunction("glGetIntegerv");
glGetPointerv = (opengl_GetPointerv *)OpenGL_LoadFunction("glGetPointerv");
glGetString = (opengl_GetString *)OpenGL_LoadFunction("glGetString");
glGetTexEnvfv = (opengl_GetTexEnvfv *)OpenGL_LoadFunction("glGetTexEnvfv");
glGetTexEnviv = (opengl_GetTexEnviv *)OpenGL_LoadFunction("glGetTexEnviv");
glGetTexGendv = (opengl_GetTexGendv *)OpenGL_LoadFunction("glGetTexGendv");
glGetTexGenfv = (opengl_GetTexGenfv *)OpenGL_LoadFunction("glGetTexGenfv");
glGetTexGeniv = (opengl_GetTexGeniv *)OpenGL_LoadFunction("glGetTexGeniv");
glGetTexImage = (opengl_GetTexImage *)OpenGL_LoadFunction("glGetTexImage");
glGetTexLevelParameterfv = (opengl_GetTexLevelParameterfv *)OpenGL_LoadFunction("glGetTexLevelParameterfv");
glGetTexLevelParameteriv = (opengl_GetTexLevelParameteriv *)OpenGL_LoadFunction("glGetTexLevelParameteriv");
glGetTexParameterfv = (opengl_GetTexParameterfv *)OpenGL_LoadFunction("glGetTexParameterfv");
glGetTexParameteriv = (opengl_GetTexParameteriv *)OpenGL_LoadFunction("glGetTexParameteriv");
glHint = (opengl_Hint *)OpenGL_LoadFunction("glHint");
glIsTexture = (opengl_IsTexture *)OpenGL_LoadFunction("glIsTexture");
glLineWidth = (opengl_LineWidth *)OpenGL_LoadFunction("glLineWidth");
glListBase = (opengl_ListBase *)OpenGL_LoadFunction("glListBase");
glLoadName = (opengl_LoadName *)OpenGL_LoadFunction("glLoadName");
glLogicOp = (opengl_LogicOp *)OpenGL_LoadFunction("glLogicOp");
glPointSize = (opengl_PointSize *)OpenGL_LoadFunction("glPointSize");
glPolygonMode = (opengl_PolygonMode *)OpenGL_LoadFunction("glPolygonMode");
glScissor = (opengl_Scissor *)OpenGL_LoadFunction("glScissor");
glTexImage1D = (opengl_TexImage1D *)OpenGL_LoadFunction("glTexImage1D");
glTexImage2D = (opengl_TexImage2D *)OpenGL_LoadFunction("glTexImage2D");
glTexParameterf = (opengl_TexParameterf *)OpenGL_LoadFunction("glTexParameterf");
glTexParameterfv = (opengl_TexParameterfv *)OpenGL_LoadFunction("glTexParameterfv");
glTexParameteri = (opengl_TexParameteri *)OpenGL_LoadFunction("glTexParameteri");
glTexParameteriv = (opengl_TexParameteriv *)OpenGL_LoadFunction("glTexParameteriv");
glTexSubImage1D = (opengl_TexSubImage1D *)OpenGL_LoadFunction("glTexSubImage1D");
glTexSubImage2D = (opengl_TexSubImage2D *)OpenGL_LoadFunction("glTexSubImage2D");
glCompressedTexImage2D = (opengl_CompressedTexImage2D *)OpenGL_LoadFunction("glCompressedTexImage2D");
glActiveTexture = (opengl_ActiveTexture *)OpenGL_LoadFunction("glActiveTexture");
glViewport = (opengl_Viewport *)OpenGL_LoadFunction("glViewport");
glGenBuffers = (opengl_GenBuffers *)OpenGL_LoadFunction("glGenBuffers");
glBindBuffer = (opengl_BindBuffer *)OpenGL_LoadFunction("glBindBuffer");
glBufferData = (opengl_BufferData *)OpenGL_LoadFunction("glBufferData");
glBufferSubData = (opengl_BufferSubData *)OpenGL_LoadFunction("glBufferSubData");
glGenVertexArrays = (opengl_GenVertexArrays *)OpenGL_LoadFunction("glGenVertexArrays");
glBindVertexArray = (opengl_BindVertexArray *)OpenGL_LoadFunction("glBindVertexArray");
glGetAttribLocation = (opengl_GetAttribLocation *)OpenGL_LoadFunction("glGetAttribLocation");
glEnableVertexAttribArray = (opengl_EnableVertexAttribArray *)OpenGL_LoadFunction("glEnableVertexAttribArray");
glDisableVertexAttribArray = (opengl_DisableVertexAttribArray *)OpenGL_LoadFunction("glDisableVertexAttribArray");
glVertexAttribPointer = (opengl_VertexAttribPointer *)OpenGL_LoadFunction("glVertexAttribPointer");
glVertexAttribIPointer = (opengl_VertexAttribIPointer *)OpenGL_LoadFunction("glVertexAttribIPointer");
glVertexAttribLPointer = (opengl_VertexAttribLPointer *)OpenGL_LoadFunction("glVertexAttribLPointer");
glVertexAttribDivisor = (opengl_VertexAttribDivisor *)OpenGL_LoadFunction("glVertexAttribDivisor");
glCreateShader = (opengl_CreateShader *)OpenGL_LoadFunction("glCreateShader");
glShaderSource = (opengl_ShaderSource *)OpenGL_LoadFunction("glShaderSource");
glCompileShader = (opengl_CompileShader *)OpenGL_LoadFunction("glCompileShader");
glDeleteShader = (opengl_DeleteShader *)OpenGL_LoadFunction("glDeleteShader");
glGetShaderiv = (opengl_GetShaderiv *)OpenGL_LoadFunction("glGetShaderiv");
glGetShaderInfoLog = (opengl_GetShaderInfoLog *)OpenGL_LoadFunction("glGetShaderInfoLog");
glCreateProgram = (opengl_CreateProgram *)OpenGL_LoadFunction("glCreateProgram");
glUseProgram = (opengl_UseProgram *)OpenGL_LoadFunction("glUseProgram");
glAttachShader = (opengl_AttachShader *)OpenGL_LoadFunction("glAttachShader");
glDeleteProgram = (opengl_DeleteProgram *)OpenGL_LoadFunction("glDeleteProgram");
glLinkProgram = (opengl_LinkProgram *)OpenGL_LoadFunction("glLinkProgram");
glGetProgramiv = (opengl_GetProgramiv *)OpenGL_LoadFunction("glGetProgramiv");
glGetProgramInfoLog = (opengl_GetProgramInfoLog *)OpenGL_LoadFunction("glGetProgramInfoLog");
glGetUniformLocation = (opengl_GetUniformLocation *)OpenGL_LoadFunction("glGetUniformLocation");
glUniform1i = (opengl_Uniform1i *)OpenGL_LoadFunction("glUniform1i");
glUniform2f = (opengl_Uniform2f *)OpenGL_LoadFunction("glUniform2f");
glUniform3f = (opengl_Uniform3f *)OpenGL_LoadFunction("glUniform3f");
glUniformMatrix4fv = (opengl_UniformMatrix4fv *)OpenGL_LoadFunction("glUniformMatrix4fv");
glDebugMessageCallback = (opengl_DebugMessageCallback *)OpenGL_LoadFunction("glDebugMessageCallback");
}

