/* WARNING: This is auto-generated file. Do not modify, since changes will
 * be lost! Modify the generating script instead.
 *
 * Generated from Khronos EGL API description (egl.xml) revision 32725.
 */
eglBindAPIFunc							bindAPI;
eglBindTexImageFunc						bindTexImage;
eglChooseConfigFunc						chooseConfig;
eglClientWaitSyncFunc					clientWaitSync;
eglClientWaitSyncKHRFunc				clientWaitSyncKHR;
eglCopyBuffersFunc						copyBuffers;
eglCreateContextFunc					createContext;
eglCreateImageFunc						createImage;
eglCreateImageKHRFunc					createImageKHR;
eglCreatePbufferFromClientBufferFunc	createPbufferFromClientBuffer;
eglCreatePbufferSurfaceFunc				createPbufferSurface;
eglCreatePixmapSurfaceFunc				createPixmapSurface;
eglCreatePlatformPixmapSurfaceFunc		createPlatformPixmapSurface;
eglCreatePlatformPixmapSurfaceEXTFunc	createPlatformPixmapSurfaceEXT;
eglCreatePlatformWindowSurfaceFunc		createPlatformWindowSurface;
eglCreatePlatformWindowSurfaceEXTFunc	createPlatformWindowSurfaceEXT;
eglCreateSyncFunc						createSync;
eglCreateSyncKHRFunc					createSyncKHR;
eglCreateWindowSurfaceFunc				createWindowSurface;
eglDestroyContextFunc					destroyContext;
eglDestroyImageFunc						destroyImage;
eglDestroyImageKHRFunc					destroyImageKHR;
eglDestroySurfaceFunc					destroySurface;
eglDestroySyncFunc						destroySync;
eglDestroySyncKHRFunc					destroySyncKHR;
eglGetConfigAttribFunc					getConfigAttrib;
eglGetConfigsFunc						getConfigs;
eglGetCurrentContextFunc				getCurrentContext;
eglGetCurrentDisplayFunc				getCurrentDisplay;
eglGetCurrentSurfaceFunc				getCurrentSurface;
eglGetDisplayFunc						getDisplay;
eglGetErrorFunc							getError;
eglGetPlatformDisplayFunc				getPlatformDisplay;
eglGetPlatformDisplayEXTFunc			getPlatformDisplayEXT;
eglGetProcAddressFunc					getProcAddress;
eglGetSyncAttribFunc					getSyncAttrib;
eglGetSyncAttribKHRFunc					getSyncAttribKHR;
eglInitializeFunc						initialize;
eglLockSurfaceKHRFunc					lockSurfaceKHR;
eglMakeCurrentFunc						makeCurrent;
eglQueryAPIFunc							queryAPI;
eglQueryContextFunc						queryContext;
eglQueryStringFunc						queryString;
eglQuerySurfaceFunc						querySurface;
eglReleaseTexImageFunc					releaseTexImage;
eglReleaseThreadFunc					releaseThread;
eglSetDamageRegionKHRFunc				setDamageRegionKHR;
eglSignalSyncKHRFunc					signalSyncKHR;
eglSurfaceAttribFunc					surfaceAttrib;
eglSwapBuffersFunc						swapBuffers;
eglSwapBuffersWithDamageKHRFunc			swapBuffersWithDamageKHR;
eglSwapIntervalFunc						swapInterval;
eglTerminateFunc						terminate;
eglUnlockSurfaceKHRFunc					unlockSurfaceKHR;
eglWaitClientFunc						waitClient;
eglWaitGLFunc							waitGL;
eglWaitNativeFunc						waitNative;
eglWaitSyncFunc							waitSync;
eglWaitSyncKHRFunc						waitSyncKHR;
