1f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu/**************************************************************************
2f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu *
3f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
4f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
5f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * Copyright 2010-2011 LunarG, Inc.
6f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * All Rights Reserved.
7f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu *
8f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * Permission is hereby granted, free of charge, to any person obtaining a
9f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * copy of this software and associated documentation files (the
10f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * "Software"), to deal in the Software without restriction, including
11f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * without limitation the rights to use, copy, modify, merge, publish,
12f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * distribute, sub license, and/or sell copies of the Software, and to
13f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * permit persons to whom the Software is furnished to do so, subject to
14f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * the following conditions:
15f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu *
16f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * The above copyright notice and this permission notice (including the
17f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * next paragraph) shall be included in all copies or substantial portions
18f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * of the Software.
19f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu *
20f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
23f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
26f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * DEALINGS IN THE SOFTWARE.
27f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu *
28f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu **************************************************************************/
29f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu
30f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu
31daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul#ifndef EGLAPI_INCLUDED
32daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul#define EGLAPI_INCLUDED
33daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
34daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/**
35e3805cad0d15ed25ce8f6c5a1f1ea913e5d0986aBrian Paul * A generic function ptr type
36daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul */
3794cb321b5d246185abf71d89968d472a626f1a23Chia-I Wutypedef void (*_EGLProc)(void);
38daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
39daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
40e3805cad0d15ed25ce8f6c5a1f1ea913e5d0986aBrian Paul/**
41e3805cad0d15ed25ce8f6c5a1f1ea913e5d0986aBrian Paul * Typedefs for all EGL API entrypoint functions.
42e3805cad0d15ed25ce8f6c5a1f1ea913e5d0986aBrian Paul */
43e3805cad0d15ed25ce8f6c5a1f1ea913e5d0986aBrian Paul
44daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* driver funcs */
45a4a38dcf61f141297a083ccac217200947d57b0dChia-I Wutypedef EGLBoolean (*Initialize_t)(_EGLDriver *, _EGLDisplay *dpy);
462f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*Terminate_t)(_EGLDriver *, _EGLDisplay *dpy);
47daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
48daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* config funcs */
492f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*GetConfigs_t)(_EGLDriver *drv, _EGLDisplay *dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
502f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*ChooseConfig_t)(_EGLDriver *drv, _EGLDisplay *dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
512f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*GetConfigAttrib_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, EGLint attribute, EGLint *value);
52daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
53daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* context funcs */
542f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef _EGLContext *(*CreateContext_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, _EGLContext *share_list, const EGLint *attrib_list);
552f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*DestroyContext_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx);
5617330479b39409a63a06ec9e6b0f8e28b585db12Chia-I Wu/* this is the only function (other than Initialize) that may be called with an uninitialized display */
572f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*MakeCurrent_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *draw, _EGLSurface *read, _EGLContext *ctx);
582f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*QueryContext_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx, EGLint attribute, EGLint *value);
59daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
60daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* surface funcs */
614aed0944f4b8b8d14d210cf6bc87ccddfa9a77ecChia-I Wutypedef _EGLSurface *(*CreateWindowSurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, EGLNativeWindowType window, const EGLint *attrib_list);
624aed0944f4b8b8d14d210cf6bc87ccddfa9a77ecChia-I Wutypedef _EGLSurface *(*CreatePixmapSurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
632f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef _EGLSurface *(*CreatePbufferSurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, const EGLint *attrib_list);
642f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*DestroySurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface);
652f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*QuerySurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, EGLint attribute, EGLint *value);
662f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*SurfaceAttrib_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, EGLint attribute, EGLint value);
672f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*BindTexImage_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, EGLint buffer);
682f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*ReleaseTexImage_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, EGLint buffer);
6957da499d7ba074128e8c97b8076805e403a2b9c4Chia-I Wutypedef EGLBoolean (*SwapInterval_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf, EGLint interval);
702f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*SwapBuffers_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *draw);
714aed0944f4b8b8d14d210cf6bc87ccddfa9a77ecChia-I Wutypedef EGLBoolean (*CopyBuffers_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, EGLNativePixmapType target);
72daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
73daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* misc funcs */
742f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef const char *(*QueryString_t)(_EGLDriver *drv, _EGLDisplay *dpy, EGLint name);
756c21c8862bc6edc9cddf3b6eb6f276961099a7a8Chia-I Wutypedef EGLBoolean (*WaitClient_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx);
762f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*WaitNative_t)(_EGLDriver *drv, _EGLDisplay *dpy, EGLint engine);
77daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
78655f4654675e601a9482e40d8e50156c965b8934Chia-I Wu/* this function may be called from multiple threads at the same time */
793e6139d158a054a0dfe8def28bf60201cdb9f385Chia-I Wutypedef _EGLProc (*GetProcAddress_t)(_EGLDriver *drv, const char *procname);
80e3805cad0d15ed25ce8f6c5a1f1ea913e5d0986aBrian Paul
81e3805cad0d15ed25ce8f6c5a1f1ea913e5d0986aBrian Paul
82daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
83b2006a40eb22899d38cd31691640555228e36975Brian Paul#ifdef EGL_MESA_screen_surface
842f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*ChooseModeMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
852f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*GetModesMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *screen, EGLModeMESA *modes, EGLint mode_size, EGLint *num_mode);
862f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*GetModeAttribMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLMode *mode, EGLint attribute, EGLint *value);
872f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*CopyContextMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *source, _EGLContext *dest, EGLint mask);
882f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*GetScreensMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
892f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef _EGLSurface *(*CreateScreenSurfaceMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, const EGLint *attrib_list);
902f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*ShowScreenSurfaceMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *screen, _EGLSurface *surface, _EGLMode *mode);
912f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*ScreenPositionMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *screen, EGLint x, EGLint y);
922f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*QueryScreenMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *screen, EGLint attribute, EGLint *value);
932f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*QueryScreenSurfaceMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *screen, _EGLSurface **surface);
942f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef EGLBoolean (*QueryScreenModeMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *screen, _EGLMode **mode);
952f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef const char * (*QueryModeStringMESA_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLMode *mode);
96b2006a40eb22899d38cd31691640555228e36975Brian Paul#endif /* EGL_MESA_screen_surface */
97b2006a40eb22899d38cd31691640555228e36975Brian Paul
98b2006a40eb22899d38cd31691640555228e36975Brian Paul
992f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wutypedef _EGLSurface *(*CreatePbufferFromClientBuffer_t)(_EGLDriver *drv, _EGLDisplay *dpy, EGLenum buftype, EGLClientBuffer buffer, _EGLConfig *config, const EGLint *attrib_list);
100b2006a40eb22899d38cd31691640555228e36975Brian Paul
101daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
102a1c4a8a3c855d52fbfef10023b9a8f116e163a97Chia-I Wutypedef _EGLImage *(*CreateImageKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attr_list);
103a1c4a8a3c855d52fbfef10023b9a8f116e163a97Chia-I Wutypedef EGLBoolean (*DestroyImageKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLImage *image);
104a1c4a8a3c855d52fbfef10023b9a8f116e163a97Chia-I Wu
1054eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wu
1064eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wutypedef _EGLSync *(*CreateSyncKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, EGLenum type, const EGLint *attrib_list);
1074eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wutypedef EGLBoolean (*DestroySyncKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSync *sync);
1084eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wutypedef EGLint (*ClientWaitSyncKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSync *sync, EGLint flags, EGLTimeKHR timeout);
1094eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wutypedef EGLBoolean (*SignalSyncKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSync *sync, EGLenum mode);
1104eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wutypedef EGLBoolean (*GetSyncAttribKHR_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSync *sync, EGLint attribute, EGLint *value);
1114eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wu
1124eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wu
11352c554a79d3ed3104a9f7d112faa9129073b5a25Kristian Høgsberg#ifdef EGL_NOK_swap_region
11452c554a79d3ed3104a9f7d112faa9129073b5a25Kristian Høgsbergtypedef EGLBoolean (*SwapBuffersRegionNOK_t)(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf, EGLint numRects, const EGLint *rects);
11552c554a79d3ed3104a9f7d112faa9129073b5a25Kristian Høgsberg#endif
116daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
117b7a8893a2413adfddf4dc836676a19463fb6ffd7Kristian Høgsberg#ifdef EGL_MESA_drm_image
118b7a8893a2413adfddf4dc836676a19463fb6ffd7Kristian Høgsbergtypedef _EGLImage *(*CreateDRMImageMESA_t)(_EGLDriver *drv, _EGLDisplay *disp, const EGLint *attr_list);
119b7a8893a2413adfddf4dc836676a19463fb6ffd7Kristian Høgsbergtypedef EGLBoolean (*ExportDRMImageMESA_t)(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *img, EGLint *name, EGLint *handle, EGLint *stride);
120b7a8893a2413adfddf4dc836676a19463fb6ffd7Kristian Høgsberg#endif
121b7a8893a2413adfddf4dc836676a19463fb6ffd7Kristian Høgsberg
1226b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzke#ifdef EGL_WL_bind_wayland_display
1236b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzkestruct wl_display;
1246b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzketypedef EGLBoolean (*BindWaylandDisplayWL_t)(_EGLDriver *drv, _EGLDisplay *disp, struct wl_display *display);
1256b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzketypedef EGLBoolean (*UnbindWaylandDisplayWL_t)(_EGLDriver *drv, _EGLDisplay *disp, struct wl_display *display);
126e6a33570b73aa56c87818d7f67a122d4427b7841Kristian Høgsbergtypedef EGLBoolean (*QueryWaylandBufferWL_t)(_EGLDriver *drv, _EGLDisplay *displ, struct wl_buffer *buffer, EGLint attribute, EGLint *value);
1276b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzke#endif
1286b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzke
1297d46b45c5bd7d1ab3e32a2722ca65061ca80dc34Fredrik Höglundtypedef EGLBoolean (*PostSubBufferNV_t)(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surface, EGLint x, EGLint y, EGLint width, EGLint height);
1307d46b45c5bd7d1ab3e32a2722ca65061ca80dc34Fredrik Höglund
131daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/**
132daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul * The API dispatcher jumps through these functions
133daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul */
134daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paulstruct _egl_api
135daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul{
136daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   Initialize_t Initialize;
137daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   Terminate_t Terminate;
138daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
139daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   GetConfigs_t GetConfigs;
140daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   ChooseConfig_t ChooseConfig;
141daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   GetConfigAttrib_t GetConfigAttrib;
142daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
143daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   CreateContext_t CreateContext;
144daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   DestroyContext_t DestroyContext;
145daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   MakeCurrent_t MakeCurrent;
146daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   QueryContext_t QueryContext;
147daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
148daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   CreateWindowSurface_t CreateWindowSurface;
149daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   CreatePixmapSurface_t CreatePixmapSurface;
150daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   CreatePbufferSurface_t CreatePbufferSurface;
151daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   DestroySurface_t DestroySurface;
152daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   QuerySurface_t QuerySurface;
153daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   SurfaceAttrib_t SurfaceAttrib;
154daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   BindTexImage_t BindTexImage;
155daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   ReleaseTexImage_t ReleaseTexImage;
156daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   SwapInterval_t SwapInterval;
157daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   SwapBuffers_t SwapBuffers;
158daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   CopyBuffers_t CopyBuffers;
159daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
160daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   QueryString_t QueryString;
1616c21c8862bc6edc9cddf3b6eb6f276961099a7a8Chia-I Wu   WaitClient_t WaitClient;
162daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   WaitNative_t WaitNative;
163e3805cad0d15ed25ce8f6c5a1f1ea913e5d0986aBrian Paul   GetProcAddress_t GetProcAddress;
164daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
165a1c4a8a3c855d52fbfef10023b9a8f116e163a97Chia-I Wu#ifdef EGL_MESA_screen_surface
166daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   ChooseModeMESA_t ChooseModeMESA;
167daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   GetModesMESA_t GetModesMESA;
168daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   GetModeAttribMESA_t GetModeAttribMESA;
169daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   CopyContextMESA_t CopyContextMESA;
170daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   GetScreensMESA_t GetScreensMESA;
171daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   CreateScreenSurfaceMESA_t CreateScreenSurfaceMESA;
17248822796339cb4a55714dc3f1abbe379562ec538Brian Paul   ShowScreenSurfaceMESA_t ShowScreenSurfaceMESA;
173daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   ScreenPositionMESA_t ScreenPositionMESA;
174daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   QueryScreenMESA_t QueryScreenMESA;
175daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   QueryScreenSurfaceMESA_t QueryScreenSurfaceMESA;
176daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   QueryScreenModeMESA_t QueryScreenModeMESA;
177daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul   QueryModeStringMESA_t QueryModeStringMESA;
178a1c4a8a3c855d52fbfef10023b9a8f116e163a97Chia-I Wu#endif /* EGL_MESA_screen_surface */
179b2006a40eb22899d38cd31691640555228e36975Brian Paul
180b2006a40eb22899d38cd31691640555228e36975Brian Paul   CreatePbufferFromClientBuffer_t CreatePbufferFromClientBuffer;
181a1c4a8a3c855d52fbfef10023b9a8f116e163a97Chia-I Wu
182a1c4a8a3c855d52fbfef10023b9a8f116e163a97Chia-I Wu   CreateImageKHR_t CreateImageKHR;
183a1c4a8a3c855d52fbfef10023b9a8f116e163a97Chia-I Wu   DestroyImageKHR_t DestroyImageKHR;
18452c554a79d3ed3104a9f7d112faa9129073b5a25Kristian Høgsberg
1854eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wu   CreateSyncKHR_t CreateSyncKHR;
1864eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wu   DestroySyncKHR_t DestroySyncKHR;
1874eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wu   ClientWaitSyncKHR_t ClientWaitSyncKHR;
1884eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wu   SignalSyncKHR_t SignalSyncKHR;
1894eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wu   GetSyncAttribKHR_t GetSyncAttribKHR;
1904eebea74a81ec5fbacf2347ea88cac137ddd4d69Chia-I Wu
19152c554a79d3ed3104a9f7d112faa9129073b5a25Kristian Høgsberg#ifdef EGL_NOK_swap_region
19252c554a79d3ed3104a9f7d112faa9129073b5a25Kristian Høgsberg   SwapBuffersRegionNOK_t SwapBuffersRegionNOK;
19352c554a79d3ed3104a9f7d112faa9129073b5a25Kristian Høgsberg#endif
194b7a8893a2413adfddf4dc836676a19463fb6ffd7Kristian Høgsberg
195b7a8893a2413adfddf4dc836676a19463fb6ffd7Kristian Høgsberg#ifdef EGL_MESA_drm_image
196b7a8893a2413adfddf4dc836676a19463fb6ffd7Kristian Høgsberg   CreateDRMImageMESA_t CreateDRMImageMESA;
197b7a8893a2413adfddf4dc836676a19463fb6ffd7Kristian Høgsberg   ExportDRMImageMESA_t ExportDRMImageMESA;
198b7a8893a2413adfddf4dc836676a19463fb6ffd7Kristian Høgsberg#endif
1996b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzke
2006b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzke#ifdef EGL_WL_bind_wayland_display
2016b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzke   BindWaylandDisplayWL_t BindWaylandDisplayWL;
2026b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzke   UnbindWaylandDisplayWL_t UnbindWaylandDisplayWL;
203e6a33570b73aa56c87818d7f67a122d4427b7841Kristian Høgsberg   QueryWaylandBufferWL_t QueryWaylandBufferWL;
2046b369c4c7cd8a52f99bbff2a57fb316b33a87495Benjamin Franzke#endif
2057d46b45c5bd7d1ab3e32a2722ca65061ca80dc34Fredrik Höglund
2067d46b45c5bd7d1ab3e32a2722ca65061ca80dc34Fredrik Höglund   PostSubBufferNV_t PostSubBufferNV;
207daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul};
208daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul
209daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul#endif /* EGLAPI_INCLUDED */
210