/* Raster state functions */
GL_FUNC(void, glAlphaFunc,  (GLenum func, GLfloat ref))
GL_FUNC(void, glBlendFunc,  (GLenum sfactor, GLenum dfactor))
GL_FUNC(void, glClearColor, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha))
GL_FUNC(void, glColorMask,  (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha))
GL_FUNC(void, glDepthFunc,  (GLenum func))
GL_FUNC(void, glDepthMask,  (GLboolean flag))
GL_FUNC(void, glDisable,    (GLenum cap))
GL_FUNC(void, glDisableClientState, (GLenum array))
GL_FUNC(void, glEnable,     (GLenum cap))
GL_FUNC(void, glEnableClientState, (GLenum array))

/* Fog functions */
GL_FUNC(void, glFogf,  (GLenum pname, GLfloat param))
GL_FUNC(void, glFogfv, (GLenum pname, const GLfloat* params))
GL_FUNC(void, glFogi,  (GLenum pname, GLint param))
GL_FUNC(void, glFogiv, (GLenum pname, const GLint* params))

/* Transform functions */
GL_FUNC(void, glLoadIdentity, (void))
GL_FUNC(void, glLoadMatrixf,  (const GLfloat* m))
GL_FUNC(void, glMatrixMode,   (GLenum mode))
GL_FUNC(void, glViewport,     (GLint x, GLint y, GLsizei width, GLsizei height))

/* Draw functions */
GL_FUNC(void, glDrawArrays,      (GLenum mode, GLint first, GLsizei count))
GL_FUNC(void, glDrawElements,    (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices))
GL_FUNC(void, glColorPointer,    (GLint size, GLenum type, GLsizei stride, GLpointer pointer))
GL_FUNC(void, glTexCoordPointer, (GLint size, GLenum type, GLsizei stride, GLpointer pointer))
GL_FUNC(void, glVertexPointer,   (GLint size, GLenum type, GLsizei stride, GLpointer pointer))

/* Misc functions */
GL_FUNC(void, glClear,      (GLuint mask))
GL_FUNC(void, glHint,       (GLenum target, GLenum mode))
GL_FUNC(void, glReadPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels))
GL_FUNC(void, glScissor,    (GLint x, GLint y, GLsizei width, GLsizei height))

/* Texture functions */
GL_FUNC(void, glBindTexture,    (GLenum target, GLuint texture))
GL_FUNC(void, glDeleteTextures, (GLsizei n, const GLuint* textures))
GL_FUNC(void, glGenTextures,    (GLsizei n, GLuint* textures))
GL_FUNC(void, glTexImage2D,     (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels))
GL_FUNC(void, glTexSubImage2D,  (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels))
GL_FUNC(void, glTexParameteri,  (GLenum target, GLenum pname, GLint param))

/* State get functions */
GL_FUNC(GLenum,         glGetError,    (void))
GL_FUNC(void,           glGetFloatv,   (GLenum pname, GLfloat* params))
GL_FUNC(void,           glGetIntegerv, (GLenum pname, GLint* params))
GL_FUNC(const GLubyte*, glGetString,   (GLenum name))

/* Legacy display list functions */
GL_FUNC(void,   glCallList,    (GLuint list))
GL_FUNC(void,   glDeleteLists, (GLuint list, GLsizei range))
GL_FUNC(GLuint, glGenLists,    (GLsizei range))
GL_FUNC(void,   glNewList,     (GLuint list, GLenum mode))
GL_FUNC(void,   glEndList,     (void))

/* Legacy vertex draw functions */
GL_FUNC(void,   glBegin,      (GLenum mode))
GL_FUNC(void,   glEnd,        (void))
GL_FUNC(void,   glColor4ub,   (GLubyte r, GLubyte g, GLubyte b, GLubyte a))
GL_FUNC(void,   glTexCoord2f, (float u, float v))
GL_FUNC(void,   glVertex3f,   (float x, float y, float z))