// GENERATED FILE - DO NOT EDIT.
// Generated by generate_loader.py using data from egl.xml and egl_angle_ext.xml.
//
// Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// egl_loader_autogen.h:
//   Simple EGL function loader.

#ifndef UTIL_EGL_LOADER_AUTOGEN_H_
#define UTIL_EGL_LOADER_AUTOGEN_H_

#include "util/util_export.h"

#include <EGL/egl.h>
#include <EGL/eglext.h>

#define eglChooseConfig ANGLE_eglChooseConfig
#define eglCopyBuffers ANGLE_eglCopyBuffers
#define eglCreateContext ANGLE_eglCreateContext
#define eglCreatePbufferSurface ANGLE_eglCreatePbufferSurface
#define eglCreatePixmapSurface ANGLE_eglCreatePixmapSurface
#define eglCreateWindowSurface ANGLE_eglCreateWindowSurface
#define eglDestroyContext ANGLE_eglDestroyContext
#define eglDestroySurface ANGLE_eglDestroySurface
#define eglGetConfigAttrib ANGLE_eglGetConfigAttrib
#define eglGetConfigs ANGLE_eglGetConfigs
#define eglGetCurrentDisplay ANGLE_eglGetCurrentDisplay
#define eglGetCurrentSurface ANGLE_eglGetCurrentSurface
#define eglGetDisplay ANGLE_eglGetDisplay
#define eglGetError ANGLE_eglGetError
#define eglGetProcAddress ANGLE_eglGetProcAddress
#define eglInitialize ANGLE_eglInitialize
#define eglMakeCurrent ANGLE_eglMakeCurrent
#define eglQueryContext ANGLE_eglQueryContext
#define eglQueryString ANGLE_eglQueryString
#define eglQuerySurface ANGLE_eglQuerySurface
#define eglSwapBuffers ANGLE_eglSwapBuffers
#define eglTerminate ANGLE_eglTerminate
#define eglWaitGL ANGLE_eglWaitGL
#define eglWaitNative ANGLE_eglWaitNative
#define eglBindTexImage ANGLE_eglBindTexImage
#define eglReleaseTexImage ANGLE_eglReleaseTexImage
#define eglSurfaceAttrib ANGLE_eglSurfaceAttrib
#define eglSwapInterval ANGLE_eglSwapInterval
#define eglBindAPI ANGLE_eglBindAPI
#define eglQueryAPI ANGLE_eglQueryAPI
#define eglCreatePbufferFromClientBuffer ANGLE_eglCreatePbufferFromClientBuffer
#define eglReleaseThread ANGLE_eglReleaseThread
#define eglWaitClient ANGLE_eglWaitClient
#define eglGetCurrentContext ANGLE_eglGetCurrentContext
#define eglCreateSync ANGLE_eglCreateSync
#define eglDestroySync ANGLE_eglDestroySync
#define eglClientWaitSync ANGLE_eglClientWaitSync
#define eglGetSyncAttrib ANGLE_eglGetSyncAttrib
#define eglCreateImage ANGLE_eglCreateImage
#define eglDestroyImage ANGLE_eglDestroyImage
#define eglGetPlatformDisplay ANGLE_eglGetPlatformDisplay
#define eglCreatePlatformWindowSurface ANGLE_eglCreatePlatformWindowSurface
#define eglCreatePlatformPixmapSurface ANGLE_eglCreatePlatformPixmapSurface
#define eglWaitSync ANGLE_eglWaitSync
#define eglSetBlobCacheFuncsANDROID ANGLE_eglSetBlobCacheFuncsANDROID
#define eglGetCompositorTimingANDROID ANGLE_eglGetCompositorTimingANDROID
#define eglGetCompositorTimingSupportedANDROID ANGLE_eglGetCompositorTimingSupportedANDROID
#define eglGetFrameTimestampSupportedANDROID ANGLE_eglGetFrameTimestampSupportedANDROID
#define eglGetFrameTimestampsANDROID ANGLE_eglGetFrameTimestampsANDROID
#define eglGetNextFrameIdANDROID ANGLE_eglGetNextFrameIdANDROID
#define eglGetNativeClientBufferANDROID ANGLE_eglGetNativeClientBufferANDROID
#define eglDupNativeFenceFDANDROID ANGLE_eglDupNativeFenceFDANDROID
#define eglPresentationTimeANDROID ANGLE_eglPresentationTimeANDROID
#define eglCreateDeviceANGLE ANGLE_eglCreateDeviceANGLE
#define eglReleaseDeviceANGLE ANGLE_eglReleaseDeviceANGLE
#define eglQueryDisplayAttribANGLE ANGLE_eglQueryDisplayAttribANGLE
#define eglQueryStringiANGLE ANGLE_eglQueryStringiANGLE
#define eglProgramCacheGetAttribANGLE ANGLE_eglProgramCacheGetAttribANGLE
#define eglProgramCachePopulateANGLE ANGLE_eglProgramCachePopulateANGLE
#define eglProgramCacheQueryANGLE ANGLE_eglProgramCacheQueryANGLE
#define eglProgramCacheResizeANGLE ANGLE_eglProgramCacheResizeANGLE
#define eglQuerySurfacePointerANGLE ANGLE_eglQuerySurfacePointerANGLE
#define eglCreateStreamProducerD3DTextureANGLE ANGLE_eglCreateStreamProducerD3DTextureANGLE
#define eglStreamPostD3DTextureANGLE ANGLE_eglStreamPostD3DTextureANGLE
#define eglSwapBuffersWithFrameTokenANGLE ANGLE_eglSwapBuffersWithFrameTokenANGLE
#define eglGetMscRateANGLE ANGLE_eglGetMscRateANGLE
#define eglGetSyncValuesCHROMIUM ANGLE_eglGetSyncValuesCHROMIUM
#define eglQueryDeviceAttribEXT ANGLE_eglQueryDeviceAttribEXT
#define eglQueryDeviceStringEXT ANGLE_eglQueryDeviceStringEXT
#define eglQueryDisplayAttribEXT ANGLE_eglQueryDisplayAttribEXT
#define eglCreatePlatformPixmapSurfaceEXT ANGLE_eglCreatePlatformPixmapSurfaceEXT
#define eglCreatePlatformWindowSurfaceEXT ANGLE_eglCreatePlatformWindowSurfaceEXT
#define eglGetPlatformDisplayEXT ANGLE_eglGetPlatformDisplayEXT
#define eglDebugMessageControlKHR ANGLE_eglDebugMessageControlKHR
#define eglLabelObjectKHR ANGLE_eglLabelObjectKHR
#define eglQueryDebugKHR ANGLE_eglQueryDebugKHR
#define eglClientWaitSyncKHR ANGLE_eglClientWaitSyncKHR
#define eglCreateSyncKHR ANGLE_eglCreateSyncKHR
#define eglDestroySyncKHR ANGLE_eglDestroySyncKHR
#define eglGetSyncAttribKHR ANGLE_eglGetSyncAttribKHR
#define eglCreateImageKHR ANGLE_eglCreateImageKHR
#define eglDestroyImageKHR ANGLE_eglDestroyImageKHR
#define eglCreateStreamKHR ANGLE_eglCreateStreamKHR
#define eglDestroyStreamKHR ANGLE_eglDestroyStreamKHR
#define eglQueryStreamKHR ANGLE_eglQueryStreamKHR
#define eglQueryStreamu64KHR ANGLE_eglQueryStreamu64KHR
#define eglStreamAttribKHR ANGLE_eglStreamAttribKHR
#define eglStreamConsumerAcquireKHR ANGLE_eglStreamConsumerAcquireKHR
#define eglStreamConsumerGLTextureExternalKHR ANGLE_eglStreamConsumerGLTextureExternalKHR
#define eglStreamConsumerReleaseKHR ANGLE_eglStreamConsumerReleaseKHR
#define eglSwapBuffersWithDamageKHR ANGLE_eglSwapBuffersWithDamageKHR
#define eglWaitSyncKHR ANGLE_eglWaitSyncKHR
#define eglPostSubBufferNV ANGLE_eglPostSubBufferNV
#define eglStreamConsumerGLTextureExternalAttribsNV \
    ANGLE_eglStreamConsumerGLTextureExternalAttribsNV
ANGLE_UTIL_EXPORT extern PFNEGLCHOOSECONFIGPROC ANGLE_eglChooseConfig;
ANGLE_UTIL_EXPORT extern PFNEGLCOPYBUFFERSPROC ANGLE_eglCopyBuffers;
ANGLE_UTIL_EXPORT extern PFNEGLCREATECONTEXTPROC ANGLE_eglCreateContext;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPBUFFERSURFACEPROC ANGLE_eglCreatePbufferSurface;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPIXMAPSURFACEPROC ANGLE_eglCreatePixmapSurface;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEWINDOWSURFACEPROC ANGLE_eglCreateWindowSurface;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYCONTEXTPROC ANGLE_eglDestroyContext;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYSURFACEPROC ANGLE_eglDestroySurface;
ANGLE_UTIL_EXPORT extern PFNEGLGETCONFIGATTRIBPROC ANGLE_eglGetConfigAttrib;
ANGLE_UTIL_EXPORT extern PFNEGLGETCONFIGSPROC ANGLE_eglGetConfigs;
ANGLE_UTIL_EXPORT extern PFNEGLGETCURRENTDISPLAYPROC ANGLE_eglGetCurrentDisplay;
ANGLE_UTIL_EXPORT extern PFNEGLGETCURRENTSURFACEPROC ANGLE_eglGetCurrentSurface;
ANGLE_UTIL_EXPORT extern PFNEGLGETDISPLAYPROC ANGLE_eglGetDisplay;
ANGLE_UTIL_EXPORT extern PFNEGLGETERRORPROC ANGLE_eglGetError;
ANGLE_UTIL_EXPORT extern PFNEGLGETPROCADDRESSPROC ANGLE_eglGetProcAddress;
ANGLE_UTIL_EXPORT extern PFNEGLINITIALIZEPROC ANGLE_eglInitialize;
ANGLE_UTIL_EXPORT extern PFNEGLMAKECURRENTPROC ANGLE_eglMakeCurrent;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYCONTEXTPROC ANGLE_eglQueryContext;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSTRINGPROC ANGLE_eglQueryString;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSURFACEPROC ANGLE_eglQuerySurface;
ANGLE_UTIL_EXPORT extern PFNEGLSWAPBUFFERSPROC ANGLE_eglSwapBuffers;
ANGLE_UTIL_EXPORT extern PFNEGLTERMINATEPROC ANGLE_eglTerminate;
ANGLE_UTIL_EXPORT extern PFNEGLWAITGLPROC ANGLE_eglWaitGL;
ANGLE_UTIL_EXPORT extern PFNEGLWAITNATIVEPROC ANGLE_eglWaitNative;
ANGLE_UTIL_EXPORT extern PFNEGLBINDTEXIMAGEPROC ANGLE_eglBindTexImage;
ANGLE_UTIL_EXPORT extern PFNEGLRELEASETEXIMAGEPROC ANGLE_eglReleaseTexImage;
ANGLE_UTIL_EXPORT extern PFNEGLSURFACEATTRIBPROC ANGLE_eglSurfaceAttrib;
ANGLE_UTIL_EXPORT extern PFNEGLSWAPINTERVALPROC ANGLE_eglSwapInterval;
ANGLE_UTIL_EXPORT extern PFNEGLBINDAPIPROC ANGLE_eglBindAPI;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYAPIPROC ANGLE_eglQueryAPI;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC
    ANGLE_eglCreatePbufferFromClientBuffer;
ANGLE_UTIL_EXPORT extern PFNEGLRELEASETHREADPROC ANGLE_eglReleaseThread;
ANGLE_UTIL_EXPORT extern PFNEGLWAITCLIENTPROC ANGLE_eglWaitClient;
ANGLE_UTIL_EXPORT extern PFNEGLGETCURRENTCONTEXTPROC ANGLE_eglGetCurrentContext;
ANGLE_UTIL_EXPORT extern PFNEGLCREATESYNCPROC ANGLE_eglCreateSync;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYSYNCPROC ANGLE_eglDestroySync;
ANGLE_UTIL_EXPORT extern PFNEGLCLIENTWAITSYNCPROC ANGLE_eglClientWaitSync;
ANGLE_UTIL_EXPORT extern PFNEGLGETSYNCATTRIBPROC ANGLE_eglGetSyncAttrib;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEIMAGEPROC ANGLE_eglCreateImage;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYIMAGEPROC ANGLE_eglDestroyImage;
ANGLE_UTIL_EXPORT extern PFNEGLGETPLATFORMDISPLAYPROC ANGLE_eglGetPlatformDisplay;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPLATFORMWINDOWSURFACEPROC ANGLE_eglCreatePlatformWindowSurface;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC ANGLE_eglCreatePlatformPixmapSurface;
ANGLE_UTIL_EXPORT extern PFNEGLWAITSYNCPROC ANGLE_eglWaitSync;
ANGLE_UTIL_EXPORT extern PFNEGLSETBLOBCACHEFUNCSANDROIDPROC ANGLE_eglSetBlobCacheFuncsANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETCOMPOSITORTIMINGANDROIDPROC ANGLE_eglGetCompositorTimingANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC
    ANGLE_eglGetCompositorTimingSupportedANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC
    ANGLE_eglGetFrameTimestampSupportedANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETFRAMETIMESTAMPSANDROIDPROC ANGLE_eglGetFrameTimestampsANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETNEXTFRAMEIDANDROIDPROC ANGLE_eglGetNextFrameIdANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC
    ANGLE_eglGetNativeClientBufferANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLDUPNATIVEFENCEFDANDROIDPROC ANGLE_eglDupNativeFenceFDANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLPRESENTATIONTIMEANDROIDPROC ANGLE_eglPresentationTimeANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEDEVICEANGLEPROC ANGLE_eglCreateDeviceANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLRELEASEDEVICEANGLEPROC ANGLE_eglReleaseDeviceANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDISPLAYATTRIBANGLEPROC ANGLE_eglQueryDisplayAttribANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSTRINGIANGLEPROC ANGLE_eglQueryStringiANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLPROGRAMCACHEGETATTRIBANGLEPROC ANGLE_eglProgramCacheGetAttribANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLPROGRAMCACHEPOPULATEANGLEPROC ANGLE_eglProgramCachePopulateANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLPROGRAMCACHEQUERYANGLEPROC ANGLE_eglProgramCacheQueryANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLPROGRAMCACHERESIZEANGLEPROC ANGLE_eglProgramCacheResizeANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSURFACEPOINTERANGLEPROC ANGLE_eglQuerySurfacePointerANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC
    ANGLE_eglCreateStreamProducerD3DTextureANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC ANGLE_eglStreamPostD3DTextureANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC
    ANGLE_eglSwapBuffersWithFrameTokenANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLGETMSCRATEANGLEPROC ANGLE_eglGetMscRateANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLGETSYNCVALUESCHROMIUMPROC ANGLE_eglGetSyncValuesCHROMIUM;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEVICEATTRIBEXTPROC ANGLE_eglQueryDeviceAttribEXT;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEVICESTRINGEXTPROC ANGLE_eglQueryDeviceStringEXT;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDISPLAYATTRIBEXTPROC ANGLE_eglQueryDisplayAttribEXT;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC
    ANGLE_eglCreatePlatformPixmapSurfaceEXT;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC
    ANGLE_eglCreatePlatformWindowSurfaceEXT;
ANGLE_UTIL_EXPORT extern PFNEGLGETPLATFORMDISPLAYEXTPROC ANGLE_eglGetPlatformDisplayEXT;
ANGLE_UTIL_EXPORT extern PFNEGLDEBUGMESSAGECONTROLKHRPROC ANGLE_eglDebugMessageControlKHR;
ANGLE_UTIL_EXPORT extern PFNEGLLABELOBJECTKHRPROC ANGLE_eglLabelObjectKHR;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEBUGKHRPROC ANGLE_eglQueryDebugKHR;
ANGLE_UTIL_EXPORT extern PFNEGLCLIENTWAITSYNCKHRPROC ANGLE_eglClientWaitSyncKHR;
ANGLE_UTIL_EXPORT extern PFNEGLCREATESYNCKHRPROC ANGLE_eglCreateSyncKHR;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYSYNCKHRPROC ANGLE_eglDestroySyncKHR;
ANGLE_UTIL_EXPORT extern PFNEGLGETSYNCATTRIBKHRPROC ANGLE_eglGetSyncAttribKHR;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEIMAGEKHRPROC ANGLE_eglCreateImageKHR;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYIMAGEKHRPROC ANGLE_eglDestroyImageKHR;
ANGLE_UTIL_EXPORT extern PFNEGLCREATESTREAMKHRPROC ANGLE_eglCreateStreamKHR;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYSTREAMKHRPROC ANGLE_eglDestroyStreamKHR;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSTREAMKHRPROC ANGLE_eglQueryStreamKHR;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSTREAMU64KHRPROC ANGLE_eglQueryStreamu64KHR;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMATTRIBKHRPROC ANGLE_eglStreamAttribKHR;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMCONSUMERACQUIREKHRPROC ANGLE_eglStreamConsumerAcquireKHR;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC
    ANGLE_eglStreamConsumerGLTextureExternalKHR;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMCONSUMERRELEASEKHRPROC ANGLE_eglStreamConsumerReleaseKHR;
ANGLE_UTIL_EXPORT extern PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC ANGLE_eglSwapBuffersWithDamageKHR;
ANGLE_UTIL_EXPORT extern PFNEGLWAITSYNCKHRPROC ANGLE_eglWaitSyncKHR;
ANGLE_UTIL_EXPORT extern PFNEGLPOSTSUBBUFFERNVPROC ANGLE_eglPostSubBufferNV;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC
    ANGLE_eglStreamConsumerGLTextureExternalAttribsNV;

namespace angle
{
using GenericProc = void (*)();
using LoadProc    = GenericProc(KHRONOS_APIENTRY *)(const char *);
ANGLE_UTIL_EXPORT void LoadEGL(LoadProc loadProc);
}  // namespace angle

#endif  // UTIL_EGL_LOADER_AUTOGEN_H_
