From f2d998c93883c42c24eb661c0f86ac27fed08e78 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Fri, 19 Dec 2014 23:57:31 -0600 Subject: [PATCH] Work around broken Android garbage. This fixes running Dolphin on the Nexus 9. Android's EGL stack has internal arrays that they use for tracking OpenGL function usage. Probably has something to do with their OpenGL profiling garbage that used to be in ADT. Android has three of these arrays, each statically allocated. One array is for all GLES 1.x functions One array is for all GLES 2.0/3.0/3.1 and a couple of extensions they deem worthy of being in this array. The last array is for all function pointers grabbed via eglGetProcAddress that isn't in the other two arrays. The last array is the issue that we are having problems with. This array is 256 members in length. So if you are pulling more than 256 function pointers that Google doesn't track in their internal array, the function will return NULL and yell at you in logcat. The Nvidia Shield Tablet gets around this by replacing part of the EGL stack with their own implementation that doesn't have this garbage. The Nexus 9 on the other hand doesn't get away with this. So we pull >100 more function pointers than the array can handle, and some of those we need to use. The workaround for this is to grab OpenGL 1.1 functions last because we won't actually be using those functions, so we get away with not grabbing the function pointers. --- .../OGL/GLExtensions/GLExtensions.cpp | 676 +++++++++--------- 1 file changed, 341 insertions(+), 335 deletions(-) diff --git a/Source/Core/VideoBackends/OGL/GLExtensions/GLExtensions.cpp b/Source/Core/VideoBackends/OGL/GLExtensions/GLExtensions.cpp index bd11c6f67e..543f769631 100644 --- a/Source/Core/VideoBackends/OGL/GLExtensions/GLExtensions.cpp +++ b/Source/Core/VideoBackends/OGL/GLExtensions/GLExtensions.cpp @@ -795,341 +795,6 @@ struct GLFunc const GLFunc gl_function_array[] = { - // gl_1_1 - GLFUNC_ALWAYS_REQUIRED(glClearIndex), - GLFUNC_ALWAYS_REQUIRED(glClearColor), - GLFUNC_ALWAYS_REQUIRED(glClear), - GLFUNC_ALWAYS_REQUIRED(glIndexMask), - GLFUNC_ALWAYS_REQUIRED(glColorMask), - GLFUNC_ALWAYS_REQUIRED(glAlphaFunc), - GLFUNC_ALWAYS_REQUIRED(glBlendFunc), - GLFUNC_ALWAYS_REQUIRED(glLogicOp), - GLFUNC_ALWAYS_REQUIRED(glCullFace), - GLFUNC_ALWAYS_REQUIRED(glFrontFace), - GLFUNC_ALWAYS_REQUIRED(glPointSize), - GLFUNC_ALWAYS_REQUIRED(glLineWidth), - GLFUNC_ALWAYS_REQUIRED(glLineStipple), - GLFUNC_ALWAYS_REQUIRED(glPolygonMode), - GLFUNC_ALWAYS_REQUIRED(glPolygonOffset), - GLFUNC_ALWAYS_REQUIRED(glPolygonStipple), - GLFUNC_ALWAYS_REQUIRED(glGetPolygonStipple), - GLFUNC_ALWAYS_REQUIRED(glEdgeFlag), - GLFUNC_ALWAYS_REQUIRED(glEdgeFlagv), - GLFUNC_ALWAYS_REQUIRED(glScissor), - GLFUNC_ALWAYS_REQUIRED(glClipPlane), - GLFUNC_ALWAYS_REQUIRED(glGetClipPlane), - GLFUNC_ALWAYS_REQUIRED(glDrawBuffer), - GLFUNC_ALWAYS_REQUIRED(glReadBuffer), - GLFUNC_ALWAYS_REQUIRED(glEnable), - GLFUNC_ALWAYS_REQUIRED(glDisable), - GLFUNC_ALWAYS_REQUIRED(glIsEnabled), - GLFUNC_ALWAYS_REQUIRED(glEnableClientState), - GLFUNC_ALWAYS_REQUIRED(glDisableClientState), - GLFUNC_ALWAYS_REQUIRED(glGetBooleanv), - GLFUNC_ALWAYS_REQUIRED(glGetDoublev), - GLFUNC_ALWAYS_REQUIRED(glGetFloatv), - GLFUNC_ALWAYS_REQUIRED(glPushAttrib), - GLFUNC_ALWAYS_REQUIRED(glPopAttrib), - GLFUNC_ALWAYS_REQUIRED(glPushClientAttrib), - GLFUNC_ALWAYS_REQUIRED(glPopClientAttrib), - GLFUNC_ALWAYS_REQUIRED(glRenderMode), - GLFUNC_ALWAYS_REQUIRED(glFinish), - GLFUNC_ALWAYS_REQUIRED(glFlush), - GLFUNC_ALWAYS_REQUIRED(glHint), - GLFUNC_ALWAYS_REQUIRED(glClearDepth), - GLFUNC_ALWAYS_REQUIRED(glDepthFunc), - GLFUNC_ALWAYS_REQUIRED(glDepthMask), - GLFUNC_ALWAYS_REQUIRED(glDepthRange), - GLFUNC_ALWAYS_REQUIRED(glClearAccum), - GLFUNC_ALWAYS_REQUIRED(glAccum), - GLFUNC_ALWAYS_REQUIRED(glMatrixMode), - GLFUNC_ALWAYS_REQUIRED(glOrtho), - GLFUNC_ALWAYS_REQUIRED(glFrustum), - GLFUNC_ALWAYS_REQUIRED(glViewport), - GLFUNC_ALWAYS_REQUIRED(glPushMatrix), - GLFUNC_ALWAYS_REQUIRED(glPopMatrix), - GLFUNC_ALWAYS_REQUIRED(glLoadIdentity), - GLFUNC_ALWAYS_REQUIRED(glLoadMatrixd), - GLFUNC_ALWAYS_REQUIRED(glLoadMatrixf), - GLFUNC_ALWAYS_REQUIRED(glMultMatrixd), - GLFUNC_ALWAYS_REQUIRED(glMultMatrixf), - GLFUNC_ALWAYS_REQUIRED(glRotated), - GLFUNC_ALWAYS_REQUIRED(glRotatef), - GLFUNC_ALWAYS_REQUIRED(glScaled), - GLFUNC_ALWAYS_REQUIRED(glScalef), - GLFUNC_ALWAYS_REQUIRED(glTranslated), - GLFUNC_ALWAYS_REQUIRED(glTranslatef), - GLFUNC_ALWAYS_REQUIRED(glIsList), - GLFUNC_ALWAYS_REQUIRED(glDeleteLists), - GLFUNC_ALWAYS_REQUIRED(glGenLists), - GLFUNC_ALWAYS_REQUIRED(glNewList), - GLFUNC_ALWAYS_REQUIRED(glEndList), - GLFUNC_ALWAYS_REQUIRED(glCallList), - GLFUNC_ALWAYS_REQUIRED(glCallLists), - GLFUNC_ALWAYS_REQUIRED(glListBase), - GLFUNC_ALWAYS_REQUIRED(glBegin), - GLFUNC_ALWAYS_REQUIRED(glEnd), - GLFUNC_ALWAYS_REQUIRED(glVertex2d), - GLFUNC_ALWAYS_REQUIRED(glVertex2f), - GLFUNC_ALWAYS_REQUIRED(glVertex2i), - GLFUNC_ALWAYS_REQUIRED(glVertex2s), - GLFUNC_ALWAYS_REQUIRED(glVertex3d), - GLFUNC_ALWAYS_REQUIRED(glVertex3f), - GLFUNC_ALWAYS_REQUIRED(glVertex3i), - GLFUNC_ALWAYS_REQUIRED(glVertex3s), - GLFUNC_ALWAYS_REQUIRED(glVertex4d), - GLFUNC_ALWAYS_REQUIRED(glVertex4f), - GLFUNC_ALWAYS_REQUIRED(glVertex4i), - GLFUNC_ALWAYS_REQUIRED(glVertex4s), - GLFUNC_ALWAYS_REQUIRED(glVertex2dv), - GLFUNC_ALWAYS_REQUIRED(glVertex2fv), - GLFUNC_ALWAYS_REQUIRED(glVertex2iv), - GLFUNC_ALWAYS_REQUIRED(glVertex2sv), - GLFUNC_ALWAYS_REQUIRED(glVertex3dv), - GLFUNC_ALWAYS_REQUIRED(glVertex3fv), - GLFUNC_ALWAYS_REQUIRED(glVertex3iv), - GLFUNC_ALWAYS_REQUIRED(glVertex3sv), - GLFUNC_ALWAYS_REQUIRED(glVertex4dv), - GLFUNC_ALWAYS_REQUIRED(glVertex4fv), - GLFUNC_ALWAYS_REQUIRED(glVertex4iv), - GLFUNC_ALWAYS_REQUIRED(glVertex4sv), - GLFUNC_ALWAYS_REQUIRED(glNormal3b), - GLFUNC_ALWAYS_REQUIRED(glNormal3d), - GLFUNC_ALWAYS_REQUIRED(glNormal3f), - GLFUNC_ALWAYS_REQUIRED(glNormal3i), - GLFUNC_ALWAYS_REQUIRED(glNormal3s), - GLFUNC_ALWAYS_REQUIRED(glNormal3bv), - GLFUNC_ALWAYS_REQUIRED(glNormal3dv), - GLFUNC_ALWAYS_REQUIRED(glNormal3fv), - GLFUNC_ALWAYS_REQUIRED(glNormal3iv), - GLFUNC_ALWAYS_REQUIRED(glNormal3sv), - GLFUNC_ALWAYS_REQUIRED(glIndexd), - GLFUNC_ALWAYS_REQUIRED(glIndexf), - GLFUNC_ALWAYS_REQUIRED(glIndexi), - GLFUNC_ALWAYS_REQUIRED(glIndexs), - GLFUNC_ALWAYS_REQUIRED(glIndexub), - GLFUNC_ALWAYS_REQUIRED(glIndexdv), - GLFUNC_ALWAYS_REQUIRED(glIndexfv), - GLFUNC_ALWAYS_REQUIRED(glIndexiv), - GLFUNC_ALWAYS_REQUIRED(glIndexsv), - GLFUNC_ALWAYS_REQUIRED(glIndexubv), - GLFUNC_ALWAYS_REQUIRED(glColor3b), - GLFUNC_ALWAYS_REQUIRED(glColor3d), - GLFUNC_ALWAYS_REQUIRED(glColor3f), - GLFUNC_ALWAYS_REQUIRED(glColor3i), - GLFUNC_ALWAYS_REQUIRED(glColor3s), - GLFUNC_ALWAYS_REQUIRED(glColor3ub), - GLFUNC_ALWAYS_REQUIRED(glColor3ui), - GLFUNC_ALWAYS_REQUIRED(glColor3us), - GLFUNC_ALWAYS_REQUIRED(glColor4b), - GLFUNC_ALWAYS_REQUIRED(glColor4d), - GLFUNC_ALWAYS_REQUIRED(glColor4f), - GLFUNC_ALWAYS_REQUIRED(glColor4i), - GLFUNC_ALWAYS_REQUIRED(glColor4s), - GLFUNC_ALWAYS_REQUIRED(glColor4ub), - GLFUNC_ALWAYS_REQUIRED(glColor4ui), - GLFUNC_ALWAYS_REQUIRED(glColor4us), - GLFUNC_ALWAYS_REQUIRED(glColor3bv), - GLFUNC_ALWAYS_REQUIRED(glColor3dv), - GLFUNC_ALWAYS_REQUIRED(glColor3fv), - GLFUNC_ALWAYS_REQUIRED(glColor3iv), - GLFUNC_ALWAYS_REQUIRED(glColor3sv), - GLFUNC_ALWAYS_REQUIRED(glColor3ubv), - GLFUNC_ALWAYS_REQUIRED(glColor3uiv), - GLFUNC_ALWAYS_REQUIRED(glColor3usv), - GLFUNC_ALWAYS_REQUIRED(glColor4bv), - GLFUNC_ALWAYS_REQUIRED(glColor4dv), - GLFUNC_ALWAYS_REQUIRED(glColor4fv), - GLFUNC_ALWAYS_REQUIRED(glColor4iv), - GLFUNC_ALWAYS_REQUIRED(glColor4sv), - GLFUNC_ALWAYS_REQUIRED(glColor4ubv), - GLFUNC_ALWAYS_REQUIRED(glColor4uiv), - GLFUNC_ALWAYS_REQUIRED(glColor4usv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord1d), - GLFUNC_ALWAYS_REQUIRED(glTexCoord1f), - GLFUNC_ALWAYS_REQUIRED(glTexCoord1i), - GLFUNC_ALWAYS_REQUIRED(glTexCoord1s), - GLFUNC_ALWAYS_REQUIRED(glTexCoord2d), - GLFUNC_ALWAYS_REQUIRED(glTexCoord2f), - GLFUNC_ALWAYS_REQUIRED(glTexCoord2i), - GLFUNC_ALWAYS_REQUIRED(glTexCoord2s), - GLFUNC_ALWAYS_REQUIRED(glTexCoord3d), - GLFUNC_ALWAYS_REQUIRED(glTexCoord3f), - GLFUNC_ALWAYS_REQUIRED(glTexCoord3i), - GLFUNC_ALWAYS_REQUIRED(glTexCoord3s), - GLFUNC_ALWAYS_REQUIRED(glTexCoord4d), - GLFUNC_ALWAYS_REQUIRED(glTexCoord4f), - GLFUNC_ALWAYS_REQUIRED(glTexCoord4i), - GLFUNC_ALWAYS_REQUIRED(glTexCoord4s), - GLFUNC_ALWAYS_REQUIRED(glTexCoord1dv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord1fv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord1iv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord1sv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord2dv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord2fv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord2iv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord2sv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord3dv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord3fv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord3iv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord3sv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord4dv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord4fv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord4iv), - GLFUNC_ALWAYS_REQUIRED(glTexCoord4sv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos2d), - GLFUNC_ALWAYS_REQUIRED(glRasterPos2f), - GLFUNC_ALWAYS_REQUIRED(glRasterPos2i), - GLFUNC_ALWAYS_REQUIRED(glRasterPos2s), - GLFUNC_ALWAYS_REQUIRED(glRasterPos3d), - GLFUNC_ALWAYS_REQUIRED(glRasterPos3f), - GLFUNC_ALWAYS_REQUIRED(glRasterPos3i), - GLFUNC_ALWAYS_REQUIRED(glRasterPos3s), - GLFUNC_ALWAYS_REQUIRED(glRasterPos4d), - GLFUNC_ALWAYS_REQUIRED(glRasterPos4f), - GLFUNC_ALWAYS_REQUIRED(glRasterPos4i), - GLFUNC_ALWAYS_REQUIRED(glRasterPos4s), - GLFUNC_ALWAYS_REQUIRED(glRasterPos2dv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos2fv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos2iv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos2sv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos3dv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos3fv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos3iv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos3sv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos4dv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos4fv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos4iv), - GLFUNC_ALWAYS_REQUIRED(glRasterPos4sv), - GLFUNC_ALWAYS_REQUIRED(glRectd), - GLFUNC_ALWAYS_REQUIRED(glRectf), - GLFUNC_ALWAYS_REQUIRED(glRecti), - GLFUNC_ALWAYS_REQUIRED(glRects), - GLFUNC_ALWAYS_REQUIRED(glRectdv), - GLFUNC_ALWAYS_REQUIRED(glRectfv), - GLFUNC_ALWAYS_REQUIRED(glRectiv), - GLFUNC_ALWAYS_REQUIRED(glRectsv), - GLFUNC_ALWAYS_REQUIRED(glVertexPointer), - GLFUNC_ALWAYS_REQUIRED(glNormalPointer), - GLFUNC_ALWAYS_REQUIRED(glColorPointer), - GLFUNC_ALWAYS_REQUIRED(glIndexPointer), - GLFUNC_ALWAYS_REQUIRED(glTexCoordPointer), - GLFUNC_ALWAYS_REQUIRED(glEdgeFlagPointer), - GLFUNC_ALWAYS_REQUIRED(glGetPointerv), - GLFUNC_ALWAYS_REQUIRED(glArrayElement), - GLFUNC_ALWAYS_REQUIRED(glDrawArrays), - GLFUNC_ALWAYS_REQUIRED(glDrawElements), - GLFUNC_ALWAYS_REQUIRED(glInterleavedArrays), - GLFUNC_ALWAYS_REQUIRED(glShadeModel), - GLFUNC_ALWAYS_REQUIRED(glLightf), - GLFUNC_ALWAYS_REQUIRED(glLighti), - GLFUNC_ALWAYS_REQUIRED(glLightfv), - GLFUNC_ALWAYS_REQUIRED(glLightiv), - GLFUNC_ALWAYS_REQUIRED(glGetLightfv), - GLFUNC_ALWAYS_REQUIRED(glGetLightiv), - GLFUNC_ALWAYS_REQUIRED(glLightModelf), - GLFUNC_ALWAYS_REQUIRED(glLightModeli), - GLFUNC_ALWAYS_REQUIRED(glLightModelfv), - GLFUNC_ALWAYS_REQUIRED(glLightModeliv), - GLFUNC_ALWAYS_REQUIRED(glMaterialf), - GLFUNC_ALWAYS_REQUIRED(glMateriali), - GLFUNC_ALWAYS_REQUIRED(glMaterialfv), - GLFUNC_ALWAYS_REQUIRED(glMaterialiv), - GLFUNC_ALWAYS_REQUIRED(glGetMaterialfv), - GLFUNC_ALWAYS_REQUIRED(glGetMaterialiv), - GLFUNC_ALWAYS_REQUIRED(glColorMaterial), - GLFUNC_ALWAYS_REQUIRED(glPixelZoom), - GLFUNC_ALWAYS_REQUIRED(glPixelStoref), - GLFUNC_ALWAYS_REQUIRED(glPixelStorei), - GLFUNC_ALWAYS_REQUIRED(glPixelTransferf), - GLFUNC_ALWAYS_REQUIRED(glPixelTransferi), - GLFUNC_ALWAYS_REQUIRED(glPixelMapfv), - GLFUNC_ALWAYS_REQUIRED(glPixelMapuiv), - GLFUNC_ALWAYS_REQUIRED(glPixelMapusv), - GLFUNC_ALWAYS_REQUIRED(glGetPixelMapfv), - GLFUNC_ALWAYS_REQUIRED(glGetPixelMapuiv), - GLFUNC_ALWAYS_REQUIRED(glGetPixelMapusv), - GLFUNC_ALWAYS_REQUIRED(glBitmap), - GLFUNC_ALWAYS_REQUIRED(glReadPixels), - GLFUNC_ALWAYS_REQUIRED(glDrawPixels), - GLFUNC_ALWAYS_REQUIRED(glCopyPixels), - GLFUNC_ALWAYS_REQUIRED(glStencilFunc), - GLFUNC_ALWAYS_REQUIRED(glStencilMask), - GLFUNC_ALWAYS_REQUIRED(glStencilOp), - GLFUNC_ALWAYS_REQUIRED(glClearStencil), - GLFUNC_ALWAYS_REQUIRED(glTexGend), - GLFUNC_ALWAYS_REQUIRED(glTexGenf), - GLFUNC_ALWAYS_REQUIRED(glTexGeni), - GLFUNC_ALWAYS_REQUIRED(glTexGendv), - GLFUNC_ALWAYS_REQUIRED(glTexGenfv), - GLFUNC_ALWAYS_REQUIRED(glTexGeniv), - GLFUNC_ALWAYS_REQUIRED(glGetTexGendv), - GLFUNC_ALWAYS_REQUIRED(glGetTexGenfv), - GLFUNC_ALWAYS_REQUIRED(glGetTexGeniv), - GLFUNC_ALWAYS_REQUIRED(glTexEnvf), - GLFUNC_ALWAYS_REQUIRED(glTexEnvi), - GLFUNC_ALWAYS_REQUIRED(glTexEnvfv), - GLFUNC_ALWAYS_REQUIRED(glTexEnviv), - GLFUNC_ALWAYS_REQUIRED(glGetTexEnvfv), - GLFUNC_ALWAYS_REQUIRED(glGetTexEnviv), - GLFUNC_ALWAYS_REQUIRED(glTexParameterf), - GLFUNC_ALWAYS_REQUIRED(glTexParameteri), - GLFUNC_ALWAYS_REQUIRED(glTexParameterfv), - GLFUNC_ALWAYS_REQUIRED(glTexParameteriv), - GLFUNC_ALWAYS_REQUIRED(glGetTexParameterfv), - GLFUNC_ALWAYS_REQUIRED(glGetTexParameteriv), - GLFUNC_ALWAYS_REQUIRED(glGetTexLevelParameterfv), - GLFUNC_ALWAYS_REQUIRED(glGetTexLevelParameteriv), - GLFUNC_ALWAYS_REQUIRED(glTexImage1D), - GLFUNC_ALWAYS_REQUIRED(glTexImage2D), - GLFUNC_ALWAYS_REQUIRED(glGetTexImage), - GLFUNC_ALWAYS_REQUIRED(glGenTextures), - GLFUNC_ALWAYS_REQUIRED(glDeleteTextures), - GLFUNC_ALWAYS_REQUIRED(glBindTexture), - GLFUNC_ALWAYS_REQUIRED(glPrioritizeTextures), - GLFUNC_ALWAYS_REQUIRED(glAreTexturesResident), - GLFUNC_ALWAYS_REQUIRED(glIsTexture), - GLFUNC_ALWAYS_REQUIRED(glTexSubImage1D), - GLFUNC_ALWAYS_REQUIRED(glTexSubImage2D), - GLFUNC_ALWAYS_REQUIRED(glCopyTexImage1D), - GLFUNC_ALWAYS_REQUIRED(glCopyTexImage2D), - GLFUNC_ALWAYS_REQUIRED(glCopyTexSubImage1D), - GLFUNC_ALWAYS_REQUIRED(glCopyTexSubImage2D), - GLFUNC_ALWAYS_REQUIRED(glMap1d), - GLFUNC_ALWAYS_REQUIRED(glMap1f), - GLFUNC_ALWAYS_REQUIRED(glMap2d), - GLFUNC_ALWAYS_REQUIRED(glMap2f), - GLFUNC_ALWAYS_REQUIRED(glGetMapdv), - GLFUNC_ALWAYS_REQUIRED(glGetMapfv), - GLFUNC_ALWAYS_REQUIRED(glGetMapiv), - GLFUNC_ALWAYS_REQUIRED(glEvalCoord1d), - GLFUNC_ALWAYS_REQUIRED(glEvalCoord1f), - GLFUNC_ALWAYS_REQUIRED(glEvalCoord1dv), - GLFUNC_ALWAYS_REQUIRED(glEvalCoord1fv), - GLFUNC_ALWAYS_REQUIRED(glEvalCoord2d), - GLFUNC_ALWAYS_REQUIRED(glEvalCoord2f), - GLFUNC_ALWAYS_REQUIRED(glEvalCoord2dv), - GLFUNC_ALWAYS_REQUIRED(glEvalCoord2fv), - GLFUNC_ALWAYS_REQUIRED(glMapGrid1d), - GLFUNC_ALWAYS_REQUIRED(glMapGrid1f), - GLFUNC_ALWAYS_REQUIRED(glMapGrid2d), - GLFUNC_ALWAYS_REQUIRED(glMapGrid2f), - GLFUNC_ALWAYS_REQUIRED(glEvalPoint1), - GLFUNC_ALWAYS_REQUIRED(glEvalPoint2), - GLFUNC_ALWAYS_REQUIRED(glEvalMesh1), - GLFUNC_ALWAYS_REQUIRED(glEvalMesh2), - GLFUNC_ALWAYS_REQUIRED(glFogf), - GLFUNC_ALWAYS_REQUIRED(glFogi), - GLFUNC_ALWAYS_REQUIRED(glFogfv), - GLFUNC_ALWAYS_REQUIRED(glFogiv), - GLFUNC_ALWAYS_REQUIRED(glFeedbackBuffer), - GLFUNC_ALWAYS_REQUIRED(glPassThrough), - GLFUNC_ALWAYS_REQUIRED(glSelectBuffer), - GLFUNC_ALWAYS_REQUIRED(glInitNames), - GLFUNC_ALWAYS_REQUIRED(glLoadName), - GLFUNC_ALWAYS_REQUIRED(glPushName), - GLFUNC_ALWAYS_REQUIRED(glPopName), - // gl_1_2 GLFUNC_ALWAYS_REQUIRED(glCopyTexSubImage3D), GLFUNC_ALWAYS_REQUIRED(glDrawRangeElements), @@ -1579,6 +1244,347 @@ const GLFunc gl_function_array[] = // EXT_geometry_shader GLFUNC_SUFFIX(glFramebufferTexture, EXT, "GL_EXT_geometry_shader !VERSION_3_2"), + + // gl_1_1 + // OpenGL 1.1 is at the end due to a bug in Android's EGL stack. + // eglGetProcAddress can only return a finite amount of function pointers + // To work around the issue put GL 1.1 function pointers at the end of the list + // We don't use many from GL 1.1, so we don't have the chance of hitting a null pointer + // For more information about Android's failing EGL stack, look at the Android issue report + // https://code.google.com/p/android/issues/detail?id=80882 + GLFUNC_ALWAYS_REQUIRED(glClearIndex), + GLFUNC_ALWAYS_REQUIRED(glClearColor), + GLFUNC_ALWAYS_REQUIRED(glClear), + GLFUNC_ALWAYS_REQUIRED(glIndexMask), + GLFUNC_ALWAYS_REQUIRED(glColorMask), + GLFUNC_ALWAYS_REQUIRED(glAlphaFunc), + GLFUNC_ALWAYS_REQUIRED(glBlendFunc), + GLFUNC_ALWAYS_REQUIRED(glLogicOp), + GLFUNC_ALWAYS_REQUIRED(glCullFace), + GLFUNC_ALWAYS_REQUIRED(glFrontFace), + GLFUNC_ALWAYS_REQUIRED(glPointSize), + GLFUNC_ALWAYS_REQUIRED(glLineWidth), + GLFUNC_ALWAYS_REQUIRED(glLineStipple), + GLFUNC_ALWAYS_REQUIRED(glPolygonMode), + GLFUNC_ALWAYS_REQUIRED(glPolygonOffset), + GLFUNC_ALWAYS_REQUIRED(glPolygonStipple), + GLFUNC_ALWAYS_REQUIRED(glGetPolygonStipple), + GLFUNC_ALWAYS_REQUIRED(glEdgeFlag), + GLFUNC_ALWAYS_REQUIRED(glEdgeFlagv), + GLFUNC_ALWAYS_REQUIRED(glScissor), + GLFUNC_ALWAYS_REQUIRED(glClipPlane), + GLFUNC_ALWAYS_REQUIRED(glGetClipPlane), + GLFUNC_ALWAYS_REQUIRED(glDrawBuffer), + GLFUNC_ALWAYS_REQUIRED(glReadBuffer), + GLFUNC_ALWAYS_REQUIRED(glEnable), + GLFUNC_ALWAYS_REQUIRED(glDisable), + GLFUNC_ALWAYS_REQUIRED(glIsEnabled), + GLFUNC_ALWAYS_REQUIRED(glEnableClientState), + GLFUNC_ALWAYS_REQUIRED(glDisableClientState), + GLFUNC_ALWAYS_REQUIRED(glGetBooleanv), + GLFUNC_ALWAYS_REQUIRED(glGetDoublev), + GLFUNC_ALWAYS_REQUIRED(glGetFloatv), + GLFUNC_ALWAYS_REQUIRED(glPushAttrib), + GLFUNC_ALWAYS_REQUIRED(glPopAttrib), + GLFUNC_ALWAYS_REQUIRED(glPushClientAttrib), + GLFUNC_ALWAYS_REQUIRED(glPopClientAttrib), + GLFUNC_ALWAYS_REQUIRED(glRenderMode), + GLFUNC_ALWAYS_REQUIRED(glFinish), + GLFUNC_ALWAYS_REQUIRED(glFlush), + GLFUNC_ALWAYS_REQUIRED(glHint), + GLFUNC_ALWAYS_REQUIRED(glClearDepth), + GLFUNC_ALWAYS_REQUIRED(glDepthFunc), + GLFUNC_ALWAYS_REQUIRED(glDepthMask), + GLFUNC_ALWAYS_REQUIRED(glDepthRange), + GLFUNC_ALWAYS_REQUIRED(glClearAccum), + GLFUNC_ALWAYS_REQUIRED(glAccum), + GLFUNC_ALWAYS_REQUIRED(glMatrixMode), + GLFUNC_ALWAYS_REQUIRED(glOrtho), + GLFUNC_ALWAYS_REQUIRED(glFrustum), + GLFUNC_ALWAYS_REQUIRED(glViewport), + GLFUNC_ALWAYS_REQUIRED(glPushMatrix), + GLFUNC_ALWAYS_REQUIRED(glPopMatrix), + GLFUNC_ALWAYS_REQUIRED(glLoadIdentity), + GLFUNC_ALWAYS_REQUIRED(glLoadMatrixd), + GLFUNC_ALWAYS_REQUIRED(glLoadMatrixf), + GLFUNC_ALWAYS_REQUIRED(glMultMatrixd), + GLFUNC_ALWAYS_REQUIRED(glMultMatrixf), + GLFUNC_ALWAYS_REQUIRED(glRotated), + GLFUNC_ALWAYS_REQUIRED(glRotatef), + GLFUNC_ALWAYS_REQUIRED(glScaled), + GLFUNC_ALWAYS_REQUIRED(glScalef), + GLFUNC_ALWAYS_REQUIRED(glTranslated), + GLFUNC_ALWAYS_REQUIRED(glTranslatef), + GLFUNC_ALWAYS_REQUIRED(glIsList), + GLFUNC_ALWAYS_REQUIRED(glDeleteLists), + GLFUNC_ALWAYS_REQUIRED(glGenLists), + GLFUNC_ALWAYS_REQUIRED(glNewList), + GLFUNC_ALWAYS_REQUIRED(glEndList), + GLFUNC_ALWAYS_REQUIRED(glCallList), + GLFUNC_ALWAYS_REQUIRED(glCallLists), + GLFUNC_ALWAYS_REQUIRED(glListBase), + GLFUNC_ALWAYS_REQUIRED(glBegin), + GLFUNC_ALWAYS_REQUIRED(glEnd), + GLFUNC_ALWAYS_REQUIRED(glVertex2d), + GLFUNC_ALWAYS_REQUIRED(glVertex2f), + GLFUNC_ALWAYS_REQUIRED(glVertex2i), + GLFUNC_ALWAYS_REQUIRED(glVertex2s), + GLFUNC_ALWAYS_REQUIRED(glVertex3d), + GLFUNC_ALWAYS_REQUIRED(glVertex3f), + GLFUNC_ALWAYS_REQUIRED(glVertex3i), + GLFUNC_ALWAYS_REQUIRED(glVertex3s), + GLFUNC_ALWAYS_REQUIRED(glVertex4d), + GLFUNC_ALWAYS_REQUIRED(glVertex4f), + GLFUNC_ALWAYS_REQUIRED(glVertex4i), + GLFUNC_ALWAYS_REQUIRED(glVertex4s), + GLFUNC_ALWAYS_REQUIRED(glVertex2dv), + GLFUNC_ALWAYS_REQUIRED(glVertex2fv), + GLFUNC_ALWAYS_REQUIRED(glVertex2iv), + GLFUNC_ALWAYS_REQUIRED(glVertex2sv), + GLFUNC_ALWAYS_REQUIRED(glVertex3dv), + GLFUNC_ALWAYS_REQUIRED(glVertex3fv), + GLFUNC_ALWAYS_REQUIRED(glVertex3iv), + GLFUNC_ALWAYS_REQUIRED(glVertex3sv), + GLFUNC_ALWAYS_REQUIRED(glVertex4dv), + GLFUNC_ALWAYS_REQUIRED(glVertex4fv), + GLFUNC_ALWAYS_REQUIRED(glVertex4iv), + GLFUNC_ALWAYS_REQUIRED(glVertex4sv), + GLFUNC_ALWAYS_REQUIRED(glNormal3b), + GLFUNC_ALWAYS_REQUIRED(glNormal3d), + GLFUNC_ALWAYS_REQUIRED(glNormal3f), + GLFUNC_ALWAYS_REQUIRED(glNormal3i), + GLFUNC_ALWAYS_REQUIRED(glNormal3s), + GLFUNC_ALWAYS_REQUIRED(glNormal3bv), + GLFUNC_ALWAYS_REQUIRED(glNormal3dv), + GLFUNC_ALWAYS_REQUIRED(glNormal3fv), + GLFUNC_ALWAYS_REQUIRED(glNormal3iv), + GLFUNC_ALWAYS_REQUIRED(glNormal3sv), + GLFUNC_ALWAYS_REQUIRED(glIndexd), + GLFUNC_ALWAYS_REQUIRED(glIndexf), + GLFUNC_ALWAYS_REQUIRED(glIndexi), + GLFUNC_ALWAYS_REQUIRED(glIndexs), + GLFUNC_ALWAYS_REQUIRED(glIndexub), + GLFUNC_ALWAYS_REQUIRED(glIndexdv), + GLFUNC_ALWAYS_REQUIRED(glIndexfv), + GLFUNC_ALWAYS_REQUIRED(glIndexiv), + GLFUNC_ALWAYS_REQUIRED(glIndexsv), + GLFUNC_ALWAYS_REQUIRED(glIndexubv), + GLFUNC_ALWAYS_REQUIRED(glColor3b), + GLFUNC_ALWAYS_REQUIRED(glColor3d), + GLFUNC_ALWAYS_REQUIRED(glColor3f), + GLFUNC_ALWAYS_REQUIRED(glColor3i), + GLFUNC_ALWAYS_REQUIRED(glColor3s), + GLFUNC_ALWAYS_REQUIRED(glColor3ub), + GLFUNC_ALWAYS_REQUIRED(glColor3ui), + GLFUNC_ALWAYS_REQUIRED(glColor3us), + GLFUNC_ALWAYS_REQUIRED(glColor4b), + GLFUNC_ALWAYS_REQUIRED(glColor4d), + GLFUNC_ALWAYS_REQUIRED(glColor4f), + GLFUNC_ALWAYS_REQUIRED(glColor4i), + GLFUNC_ALWAYS_REQUIRED(glColor4s), + GLFUNC_ALWAYS_REQUIRED(glColor4ub), + GLFUNC_ALWAYS_REQUIRED(glColor4ui), + GLFUNC_ALWAYS_REQUIRED(glColor4us), + GLFUNC_ALWAYS_REQUIRED(glColor3bv), + GLFUNC_ALWAYS_REQUIRED(glColor3dv), + GLFUNC_ALWAYS_REQUIRED(glColor3fv), + GLFUNC_ALWAYS_REQUIRED(glColor3iv), + GLFUNC_ALWAYS_REQUIRED(glColor3sv), + GLFUNC_ALWAYS_REQUIRED(glColor3ubv), + GLFUNC_ALWAYS_REQUIRED(glColor3uiv), + GLFUNC_ALWAYS_REQUIRED(glColor3usv), + GLFUNC_ALWAYS_REQUIRED(glColor4bv), + GLFUNC_ALWAYS_REQUIRED(glColor4dv), + GLFUNC_ALWAYS_REQUIRED(glColor4fv), + GLFUNC_ALWAYS_REQUIRED(glColor4iv), + GLFUNC_ALWAYS_REQUIRED(glColor4sv), + GLFUNC_ALWAYS_REQUIRED(glColor4ubv), + GLFUNC_ALWAYS_REQUIRED(glColor4uiv), + GLFUNC_ALWAYS_REQUIRED(glColor4usv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord1d), + GLFUNC_ALWAYS_REQUIRED(glTexCoord1f), + GLFUNC_ALWAYS_REQUIRED(glTexCoord1i), + GLFUNC_ALWAYS_REQUIRED(glTexCoord1s), + GLFUNC_ALWAYS_REQUIRED(glTexCoord2d), + GLFUNC_ALWAYS_REQUIRED(glTexCoord2f), + GLFUNC_ALWAYS_REQUIRED(glTexCoord2i), + GLFUNC_ALWAYS_REQUIRED(glTexCoord2s), + GLFUNC_ALWAYS_REQUIRED(glTexCoord3d), + GLFUNC_ALWAYS_REQUIRED(glTexCoord3f), + GLFUNC_ALWAYS_REQUIRED(glTexCoord3i), + GLFUNC_ALWAYS_REQUIRED(glTexCoord3s), + GLFUNC_ALWAYS_REQUIRED(glTexCoord4d), + GLFUNC_ALWAYS_REQUIRED(glTexCoord4f), + GLFUNC_ALWAYS_REQUIRED(glTexCoord4i), + GLFUNC_ALWAYS_REQUIRED(glTexCoord4s), + GLFUNC_ALWAYS_REQUIRED(glTexCoord1dv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord1fv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord1iv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord1sv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord2dv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord2fv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord2iv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord2sv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord3dv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord3fv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord3iv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord3sv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord4dv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord4fv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord4iv), + GLFUNC_ALWAYS_REQUIRED(glTexCoord4sv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos2d), + GLFUNC_ALWAYS_REQUIRED(glRasterPos2f), + GLFUNC_ALWAYS_REQUIRED(glRasterPos2i), + GLFUNC_ALWAYS_REQUIRED(glRasterPos2s), + GLFUNC_ALWAYS_REQUIRED(glRasterPos3d), + GLFUNC_ALWAYS_REQUIRED(glRasterPos3f), + GLFUNC_ALWAYS_REQUIRED(glRasterPos3i), + GLFUNC_ALWAYS_REQUIRED(glRasterPos3s), + GLFUNC_ALWAYS_REQUIRED(glRasterPos4d), + GLFUNC_ALWAYS_REQUIRED(glRasterPos4f), + GLFUNC_ALWAYS_REQUIRED(glRasterPos4i), + GLFUNC_ALWAYS_REQUIRED(glRasterPos4s), + GLFUNC_ALWAYS_REQUIRED(glRasterPos2dv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos2fv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos2iv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos2sv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos3dv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos3fv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos3iv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos3sv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos4dv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos4fv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos4iv), + GLFUNC_ALWAYS_REQUIRED(glRasterPos4sv), + GLFUNC_ALWAYS_REQUIRED(glRectd), + GLFUNC_ALWAYS_REQUIRED(glRectf), + GLFUNC_ALWAYS_REQUIRED(glRecti), + GLFUNC_ALWAYS_REQUIRED(glRects), + GLFUNC_ALWAYS_REQUIRED(glRectdv), + GLFUNC_ALWAYS_REQUIRED(glRectfv), + GLFUNC_ALWAYS_REQUIRED(glRectiv), + GLFUNC_ALWAYS_REQUIRED(glRectsv), + GLFUNC_ALWAYS_REQUIRED(glVertexPointer), + GLFUNC_ALWAYS_REQUIRED(glNormalPointer), + GLFUNC_ALWAYS_REQUIRED(glColorPointer), + GLFUNC_ALWAYS_REQUIRED(glIndexPointer), + GLFUNC_ALWAYS_REQUIRED(glTexCoordPointer), + GLFUNC_ALWAYS_REQUIRED(glEdgeFlagPointer), + GLFUNC_ALWAYS_REQUIRED(glGetPointerv), + GLFUNC_ALWAYS_REQUIRED(glArrayElement), + GLFUNC_ALWAYS_REQUIRED(glDrawArrays), + GLFUNC_ALWAYS_REQUIRED(glDrawElements), + GLFUNC_ALWAYS_REQUIRED(glInterleavedArrays), + GLFUNC_ALWAYS_REQUIRED(glShadeModel), + GLFUNC_ALWAYS_REQUIRED(glLightf), + GLFUNC_ALWAYS_REQUIRED(glLighti), + GLFUNC_ALWAYS_REQUIRED(glLightfv), + GLFUNC_ALWAYS_REQUIRED(glLightiv), + GLFUNC_ALWAYS_REQUIRED(glGetLightfv), + GLFUNC_ALWAYS_REQUIRED(glGetLightiv), + GLFUNC_ALWAYS_REQUIRED(glLightModelf), + GLFUNC_ALWAYS_REQUIRED(glLightModeli), + GLFUNC_ALWAYS_REQUIRED(glLightModelfv), + GLFUNC_ALWAYS_REQUIRED(glLightModeliv), + GLFUNC_ALWAYS_REQUIRED(glMaterialf), + GLFUNC_ALWAYS_REQUIRED(glMateriali), + GLFUNC_ALWAYS_REQUIRED(glMaterialfv), + GLFUNC_ALWAYS_REQUIRED(glMaterialiv), + GLFUNC_ALWAYS_REQUIRED(glGetMaterialfv), + GLFUNC_ALWAYS_REQUIRED(glGetMaterialiv), + GLFUNC_ALWAYS_REQUIRED(glColorMaterial), + GLFUNC_ALWAYS_REQUIRED(glPixelZoom), + GLFUNC_ALWAYS_REQUIRED(glPixelStoref), + GLFUNC_ALWAYS_REQUIRED(glPixelStorei), + GLFUNC_ALWAYS_REQUIRED(glPixelTransferf), + GLFUNC_ALWAYS_REQUIRED(glPixelTransferi), + GLFUNC_ALWAYS_REQUIRED(glPixelMapfv), + GLFUNC_ALWAYS_REQUIRED(glPixelMapuiv), + GLFUNC_ALWAYS_REQUIRED(glPixelMapusv), + GLFUNC_ALWAYS_REQUIRED(glGetPixelMapfv), + GLFUNC_ALWAYS_REQUIRED(glGetPixelMapuiv), + GLFUNC_ALWAYS_REQUIRED(glGetPixelMapusv), + GLFUNC_ALWAYS_REQUIRED(glBitmap), + GLFUNC_ALWAYS_REQUIRED(glReadPixels), + GLFUNC_ALWAYS_REQUIRED(glDrawPixels), + GLFUNC_ALWAYS_REQUIRED(glCopyPixels), + GLFUNC_ALWAYS_REQUIRED(glStencilFunc), + GLFUNC_ALWAYS_REQUIRED(glStencilMask), + GLFUNC_ALWAYS_REQUIRED(glStencilOp), + GLFUNC_ALWAYS_REQUIRED(glClearStencil), + GLFUNC_ALWAYS_REQUIRED(glTexGend), + GLFUNC_ALWAYS_REQUIRED(glTexGenf), + GLFUNC_ALWAYS_REQUIRED(glTexGeni), + GLFUNC_ALWAYS_REQUIRED(glTexGendv), + GLFUNC_ALWAYS_REQUIRED(glTexGenfv), + GLFUNC_ALWAYS_REQUIRED(glTexGeniv), + GLFUNC_ALWAYS_REQUIRED(glGetTexGendv), + GLFUNC_ALWAYS_REQUIRED(glGetTexGenfv), + GLFUNC_ALWAYS_REQUIRED(glGetTexGeniv), + GLFUNC_ALWAYS_REQUIRED(glTexEnvf), + GLFUNC_ALWAYS_REQUIRED(glTexEnvi), + GLFUNC_ALWAYS_REQUIRED(glTexEnvfv), + GLFUNC_ALWAYS_REQUIRED(glTexEnviv), + GLFUNC_ALWAYS_REQUIRED(glGetTexEnvfv), + GLFUNC_ALWAYS_REQUIRED(glGetTexEnviv), + GLFUNC_ALWAYS_REQUIRED(glTexParameterf), + GLFUNC_ALWAYS_REQUIRED(glTexParameteri), + GLFUNC_ALWAYS_REQUIRED(glTexParameterfv), + GLFUNC_ALWAYS_REQUIRED(glTexParameteriv), + GLFUNC_ALWAYS_REQUIRED(glGetTexParameterfv), + GLFUNC_ALWAYS_REQUIRED(glGetTexParameteriv), + GLFUNC_ALWAYS_REQUIRED(glGetTexLevelParameterfv), + GLFUNC_ALWAYS_REQUIRED(glGetTexLevelParameteriv), + GLFUNC_ALWAYS_REQUIRED(glTexImage1D), + GLFUNC_ALWAYS_REQUIRED(glTexImage2D), + GLFUNC_ALWAYS_REQUIRED(glGetTexImage), + GLFUNC_ALWAYS_REQUIRED(glGenTextures), + GLFUNC_ALWAYS_REQUIRED(glDeleteTextures), + GLFUNC_ALWAYS_REQUIRED(glBindTexture), + GLFUNC_ALWAYS_REQUIRED(glPrioritizeTextures), + GLFUNC_ALWAYS_REQUIRED(glAreTexturesResident), + GLFUNC_ALWAYS_REQUIRED(glIsTexture), + GLFUNC_ALWAYS_REQUIRED(glTexSubImage1D), + GLFUNC_ALWAYS_REQUIRED(glTexSubImage2D), + GLFUNC_ALWAYS_REQUIRED(glCopyTexImage1D), + GLFUNC_ALWAYS_REQUIRED(glCopyTexImage2D), + GLFUNC_ALWAYS_REQUIRED(glCopyTexSubImage1D), + GLFUNC_ALWAYS_REQUIRED(glCopyTexSubImage2D), + GLFUNC_ALWAYS_REQUIRED(glMap1d), + GLFUNC_ALWAYS_REQUIRED(glMap1f), + GLFUNC_ALWAYS_REQUIRED(glMap2d), + GLFUNC_ALWAYS_REQUIRED(glMap2f), + GLFUNC_ALWAYS_REQUIRED(glGetMapdv), + GLFUNC_ALWAYS_REQUIRED(glGetMapfv), + GLFUNC_ALWAYS_REQUIRED(glGetMapiv), + GLFUNC_ALWAYS_REQUIRED(glEvalCoord1d), + GLFUNC_ALWAYS_REQUIRED(glEvalCoord1f), + GLFUNC_ALWAYS_REQUIRED(glEvalCoord1dv), + GLFUNC_ALWAYS_REQUIRED(glEvalCoord1fv), + GLFUNC_ALWAYS_REQUIRED(glEvalCoord2d), + GLFUNC_ALWAYS_REQUIRED(glEvalCoord2f), + GLFUNC_ALWAYS_REQUIRED(glEvalCoord2dv), + GLFUNC_ALWAYS_REQUIRED(glEvalCoord2fv), + GLFUNC_ALWAYS_REQUIRED(glMapGrid1d), + GLFUNC_ALWAYS_REQUIRED(glMapGrid1f), + GLFUNC_ALWAYS_REQUIRED(glMapGrid2d), + GLFUNC_ALWAYS_REQUIRED(glMapGrid2f), + GLFUNC_ALWAYS_REQUIRED(glEvalPoint1), + GLFUNC_ALWAYS_REQUIRED(glEvalPoint2), + GLFUNC_ALWAYS_REQUIRED(glEvalMesh1), + GLFUNC_ALWAYS_REQUIRED(glEvalMesh2), + GLFUNC_ALWAYS_REQUIRED(glFogf), + GLFUNC_ALWAYS_REQUIRED(glFogi), + GLFUNC_ALWAYS_REQUIRED(glFogfv), + GLFUNC_ALWAYS_REQUIRED(glFogiv), + GLFUNC_ALWAYS_REQUIRED(glFeedbackBuffer), + GLFUNC_ALWAYS_REQUIRED(glPassThrough), + GLFUNC_ALWAYS_REQUIRED(glSelectBuffer), + GLFUNC_ALWAYS_REQUIRED(glInitNames), + GLFUNC_ALWAYS_REQUIRED(glLoadName), + GLFUNC_ALWAYS_REQUIRED(glPushName), + GLFUNC_ALWAYS_REQUIRED(glPopName), }; namespace GLExtensions