// 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 l_eglChooseConfig
#define eglCopyBuffers l_eglCopyBuffers
#define eglCreateContext l_eglCreateContext
#define eglCreatePbufferSurface l_eglCreatePbufferSurface
#define eglCreatePixmapSurface l_eglCreatePixmapSurface
#define eglCreateWindowSurface l_eglCreateWindowSurface
#define eglDestroyContext l_eglDestroyContext
#define eglDestroySurface l_eglDestroySurface
#define eglGetConfigAttrib l_eglGetConfigAttrib
#define eglGetConfigs l_eglGetConfigs
#define eglGetCurrentDisplay l_eglGetCurrentDisplay
#define eglGetCurrentSurface l_eglGetCurrentSurface
#define eglGetDisplay l_eglGetDisplay
#define eglGetError l_eglGetError
#define eglGetProcAddress l_eglGetProcAddress
#define eglInitialize l_eglInitialize
#define eglMakeCurrent l_eglMakeCurrent
#define eglQueryContext l_eglQueryContext
#define eglQueryString l_eglQueryString
#define eglQuerySurface l_eglQuerySurface
#define eglSwapBuffers l_eglSwapBuffers
#define eglTerminate l_eglTerminate
#define eglWaitGL l_eglWaitGL
#define eglWaitNative l_eglWaitNative
#define eglBindTexImage l_eglBindTexImage
#define eglReleaseTexImage l_eglReleaseTexImage
#define eglSurfaceAttrib l_eglSurfaceAttrib
#define eglSwapInterval l_eglSwapInterval
#define eglBindAPI l_eglBindAPI
#define eglQueryAPI l_eglQueryAPI
#define eglCreatePbufferFromClientBuffer l_eglCreatePbufferFromClientBuffer
#define eglReleaseThread l_eglReleaseThread
#define eglWaitClient l_eglWaitClient
#define eglGetCurrentContext l_eglGetCurrentContext
#define eglCreateSync l_eglCreateSync
#define eglDestroySync l_eglDestroySync
#define eglClientWaitSync l_eglClientWaitSync
#define eglGetSyncAttrib l_eglGetSyncAttrib
#define eglCreateImage l_eglCreateImage
#define eglDestroyImage l_eglDestroyImage
#define eglGetPlatformDisplay l_eglGetPlatformDisplay
#define eglCreatePlatformWindowSurface l_eglCreatePlatformWindowSurface
#define eglCreatePlatformPixmapSurface l_eglCreatePlatformPixmapSurface
#define eglWaitSync l_eglWaitSync
#define eglSetBlobCacheFuncsANDROID l_eglSetBlobCacheFuncsANDROID
#define eglCreateNativeClientBufferANDROID l_eglCreateNativeClientBufferANDROID
#define eglGetCompositorTimingANDROID l_eglGetCompositorTimingANDROID
#define eglGetCompositorTimingSupportedANDROID l_eglGetCompositorTimingSupportedANDROID
#define eglGetFrameTimestampSupportedANDROID l_eglGetFrameTimestampSupportedANDROID
#define eglGetFrameTimestampsANDROID l_eglGetFrameTimestampsANDROID
#define eglGetNextFrameIdANDROID l_eglGetNextFrameIdANDROID
#define eglGetNativeClientBufferANDROID l_eglGetNativeClientBufferANDROID
#define eglDupNativeFenceFDANDROID l_eglDupNativeFenceFDANDROID
#define eglPresentationTimeANDROID l_eglPresentationTimeANDROID
#define eglCreateDeviceANGLE l_eglCreateDeviceANGLE
#define eglReleaseDeviceANGLE l_eglReleaseDeviceANGLE
#define eglQueryDisplayAttribANGLE l_eglQueryDisplayAttribANGLE
#define eglQueryStringiANGLE l_eglQueryStringiANGLE
#define eglHandleGPUSwitchANGLE l_eglHandleGPUSwitchANGLE
#define eglReacquireHighPowerGPUANGLE l_eglReacquireHighPowerGPUANGLE
#define eglReleaseHighPowerGPUANGLE l_eglReleaseHighPowerGPUANGLE
#define eglProgramCacheGetAttribANGLE l_eglProgramCacheGetAttribANGLE
#define eglProgramCachePopulateANGLE l_eglProgramCachePopulateANGLE
#define eglProgramCacheQueryANGLE l_eglProgramCacheQueryANGLE
#define eglProgramCacheResizeANGLE l_eglProgramCacheResizeANGLE
#define eglQuerySurfacePointerANGLE l_eglQuerySurfacePointerANGLE
#define eglCreateStreamProducerD3DTextureANGLE l_eglCreateStreamProducerD3DTextureANGLE
#define eglStreamPostD3DTextureANGLE l_eglStreamPostD3DTextureANGLE
#define eglSwapBuffersWithFrameTokenANGLE l_eglSwapBuffersWithFrameTokenANGLE
#define eglGetMscRateANGLE l_eglGetMscRateANGLE
#define eglGetSyncValuesCHROMIUM l_eglGetSyncValuesCHROMIUM
#define eglQueryDeviceAttribEXT l_eglQueryDeviceAttribEXT
#define eglQueryDeviceStringEXT l_eglQueryDeviceStringEXT
#define eglQueryDisplayAttribEXT l_eglQueryDisplayAttribEXT
#define eglCreatePlatformPixmapSurfaceEXT l_eglCreatePlatformPixmapSurfaceEXT
#define eglCreatePlatformWindowSurfaceEXT l_eglCreatePlatformWindowSurfaceEXT
#define eglGetPlatformDisplayEXT l_eglGetPlatformDisplayEXT
#define eglDebugMessageControlKHR l_eglDebugMessageControlKHR
#define eglLabelObjectKHR l_eglLabelObjectKHR
#define eglQueryDebugKHR l_eglQueryDebugKHR
#define eglClientWaitSyncKHR l_eglClientWaitSyncKHR
#define eglCreateSyncKHR l_eglCreateSyncKHR
#define eglDestroySyncKHR l_eglDestroySyncKHR
#define eglGetSyncAttribKHR l_eglGetSyncAttribKHR
#define eglCreateImageKHR l_eglCreateImageKHR
#define eglDestroyImageKHR l_eglDestroyImageKHR
#define eglCreateStreamKHR l_eglCreateStreamKHR
#define eglDestroyStreamKHR l_eglDestroyStreamKHR
#define eglQueryStreamKHR l_eglQueryStreamKHR
#define eglQueryStreamu64KHR l_eglQueryStreamu64KHR
#define eglStreamAttribKHR l_eglStreamAttribKHR
#define eglStreamConsumerAcquireKHR l_eglStreamConsumerAcquireKHR
#define eglStreamConsumerGLTextureExternalKHR l_eglStreamConsumerGLTextureExternalKHR
#define eglStreamConsumerReleaseKHR l_eglStreamConsumerReleaseKHR
#define eglSwapBuffersWithDamageKHR l_eglSwapBuffersWithDamageKHR
#define eglWaitSyncKHR l_eglWaitSyncKHR
#define eglPostSubBufferNV l_eglPostSubBufferNV
#define eglStreamConsumerGLTextureExternalAttribsNV l_eglStreamConsumerGLTextureExternalAttribsNV
ANGLE_UTIL_EXPORT extern PFNEGLCHOOSECONFIGPROC l_eglChooseConfig;
ANGLE_UTIL_EXPORT extern PFNEGLCOPYBUFFERSPROC l_eglCopyBuffers;
ANGLE_UTIL_EXPORT extern PFNEGLCREATECONTEXTPROC l_eglCreateContext;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPBUFFERSURFACEPROC l_eglCreatePbufferSurface;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPIXMAPSURFACEPROC l_eglCreatePixmapSurface;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEWINDOWSURFACEPROC l_eglCreateWindowSurface;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYCONTEXTPROC l_eglDestroyContext;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYSURFACEPROC l_eglDestroySurface;
ANGLE_UTIL_EXPORT extern PFNEGLGETCONFIGATTRIBPROC l_eglGetConfigAttrib;
ANGLE_UTIL_EXPORT extern PFNEGLGETCONFIGSPROC l_eglGetConfigs;
ANGLE_UTIL_EXPORT extern PFNEGLGETCURRENTDISPLAYPROC l_eglGetCurrentDisplay;
ANGLE_UTIL_EXPORT extern PFNEGLGETCURRENTSURFACEPROC l_eglGetCurrentSurface;
ANGLE_UTIL_EXPORT extern PFNEGLGETDISPLAYPROC l_eglGetDisplay;
ANGLE_UTIL_EXPORT extern PFNEGLGETERRORPROC l_eglGetError;
ANGLE_UTIL_EXPORT extern PFNEGLGETPROCADDRESSPROC l_eglGetProcAddress;
ANGLE_UTIL_EXPORT extern PFNEGLINITIALIZEPROC l_eglInitialize;
ANGLE_UTIL_EXPORT extern PFNEGLMAKECURRENTPROC l_eglMakeCurrent;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYCONTEXTPROC l_eglQueryContext;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSTRINGPROC l_eglQueryString;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSURFACEPROC l_eglQuerySurface;
ANGLE_UTIL_EXPORT extern PFNEGLSWAPBUFFERSPROC l_eglSwapBuffers;
ANGLE_UTIL_EXPORT extern PFNEGLTERMINATEPROC l_eglTerminate;
ANGLE_UTIL_EXPORT extern PFNEGLWAITGLPROC l_eglWaitGL;
ANGLE_UTIL_EXPORT extern PFNEGLWAITNATIVEPROC l_eglWaitNative;
ANGLE_UTIL_EXPORT extern PFNEGLBINDTEXIMAGEPROC l_eglBindTexImage;
ANGLE_UTIL_EXPORT extern PFNEGLRELEASETEXIMAGEPROC l_eglReleaseTexImage;
ANGLE_UTIL_EXPORT extern PFNEGLSURFACEATTRIBPROC l_eglSurfaceAttrib;
ANGLE_UTIL_EXPORT extern PFNEGLSWAPINTERVALPROC l_eglSwapInterval;
ANGLE_UTIL_EXPORT extern PFNEGLBINDAPIPROC l_eglBindAPI;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYAPIPROC l_eglQueryAPI;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC l_eglCreatePbufferFromClientBuffer;
ANGLE_UTIL_EXPORT extern PFNEGLRELEASETHREADPROC l_eglReleaseThread;
ANGLE_UTIL_EXPORT extern PFNEGLWAITCLIENTPROC l_eglWaitClient;
ANGLE_UTIL_EXPORT extern PFNEGLGETCURRENTCONTEXTPROC l_eglGetCurrentContext;
ANGLE_UTIL_EXPORT extern PFNEGLCREATESYNCPROC l_eglCreateSync;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYSYNCPROC l_eglDestroySync;
ANGLE_UTIL_EXPORT extern PFNEGLCLIENTWAITSYNCPROC l_eglClientWaitSync;
ANGLE_UTIL_EXPORT extern PFNEGLGETSYNCATTRIBPROC l_eglGetSyncAttrib;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEIMAGEPROC l_eglCreateImage;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYIMAGEPROC l_eglDestroyImage;
ANGLE_UTIL_EXPORT extern PFNEGLGETPLATFORMDISPLAYPROC l_eglGetPlatformDisplay;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPLATFORMWINDOWSURFACEPROC l_eglCreatePlatformWindowSurface;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC l_eglCreatePlatformPixmapSurface;
ANGLE_UTIL_EXPORT extern PFNEGLWAITSYNCPROC l_eglWaitSync;
ANGLE_UTIL_EXPORT extern PFNEGLSETBLOBCACHEFUNCSANDROIDPROC l_eglSetBlobCacheFuncsANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC
    l_eglCreateNativeClientBufferANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETCOMPOSITORTIMINGANDROIDPROC l_eglGetCompositorTimingANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC
    l_eglGetCompositorTimingSupportedANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC
    l_eglGetFrameTimestampSupportedANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETFRAMETIMESTAMPSANDROIDPROC l_eglGetFrameTimestampsANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETNEXTFRAMEIDANDROIDPROC l_eglGetNextFrameIdANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC l_eglGetNativeClientBufferANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLDUPNATIVEFENCEFDANDROIDPROC l_eglDupNativeFenceFDANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLPRESENTATIONTIMEANDROIDPROC l_eglPresentationTimeANDROID;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEDEVICEANGLEPROC l_eglCreateDeviceANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLRELEASEDEVICEANGLEPROC l_eglReleaseDeviceANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDISPLAYATTRIBANGLEPROC l_eglQueryDisplayAttribANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSTRINGIANGLEPROC l_eglQueryStringiANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLHANDLEGPUSWITCHANGLEPROC l_eglHandleGPUSwitchANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC l_eglReacquireHighPowerGPUANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLRELEASEHIGHPOWERGPUANGLEPROC l_eglReleaseHighPowerGPUANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLPROGRAMCACHEGETATTRIBANGLEPROC l_eglProgramCacheGetAttribANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLPROGRAMCACHEPOPULATEANGLEPROC l_eglProgramCachePopulateANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLPROGRAMCACHEQUERYANGLEPROC l_eglProgramCacheQueryANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLPROGRAMCACHERESIZEANGLEPROC l_eglProgramCacheResizeANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSURFACEPOINTERANGLEPROC l_eglQuerySurfacePointerANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC
    l_eglCreateStreamProducerD3DTextureANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC l_eglStreamPostD3DTextureANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC
    l_eglSwapBuffersWithFrameTokenANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLGETMSCRATEANGLEPROC l_eglGetMscRateANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLGETSYNCVALUESCHROMIUMPROC l_eglGetSyncValuesCHROMIUM;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEVICEATTRIBEXTPROC l_eglQueryDeviceAttribEXT;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEVICESTRINGEXTPROC l_eglQueryDeviceStringEXT;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDISPLAYATTRIBEXTPROC l_eglQueryDisplayAttribEXT;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC
    l_eglCreatePlatformPixmapSurfaceEXT;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC
    l_eglCreatePlatformWindowSurfaceEXT;
ANGLE_UTIL_EXPORT extern PFNEGLGETPLATFORMDISPLAYEXTPROC l_eglGetPlatformDisplayEXT;
ANGLE_UTIL_EXPORT extern PFNEGLDEBUGMESSAGECONTROLKHRPROC l_eglDebugMessageControlKHR;
ANGLE_UTIL_EXPORT extern PFNEGLLABELOBJECTKHRPROC l_eglLabelObjectKHR;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEBUGKHRPROC l_eglQueryDebugKHR;
ANGLE_UTIL_EXPORT extern PFNEGLCLIENTWAITSYNCKHRPROC l_eglClientWaitSyncKHR;
ANGLE_UTIL_EXPORT extern PFNEGLCREATESYNCKHRPROC l_eglCreateSyncKHR;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYSYNCKHRPROC l_eglDestroySyncKHR;
ANGLE_UTIL_EXPORT extern PFNEGLGETSYNCATTRIBKHRPROC l_eglGetSyncAttribKHR;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEIMAGEKHRPROC l_eglCreateImageKHR;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYIMAGEKHRPROC l_eglDestroyImageKHR;
ANGLE_UTIL_EXPORT extern PFNEGLCREATESTREAMKHRPROC l_eglCreateStreamKHR;
ANGLE_UTIL_EXPORT extern PFNEGLDESTROYSTREAMKHRPROC l_eglDestroyStreamKHR;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSTREAMKHRPROC l_eglQueryStreamKHR;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSTREAMU64KHRPROC l_eglQueryStreamu64KHR;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMATTRIBKHRPROC l_eglStreamAttribKHR;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMCONSUMERACQUIREKHRPROC l_eglStreamConsumerAcquireKHR;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC
    l_eglStreamConsumerGLTextureExternalKHR;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMCONSUMERRELEASEKHRPROC l_eglStreamConsumerReleaseKHR;
ANGLE_UTIL_EXPORT extern PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC l_eglSwapBuffersWithDamageKHR;
ANGLE_UTIL_EXPORT extern PFNEGLWAITSYNCKHRPROC l_eglWaitSyncKHR;
ANGLE_UTIL_EXPORT extern PFNEGLPOSTSUBBUFFERNVPROC l_eglPostSubBufferNV;
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC
    l_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_
