eglapi.h revision daf585d0f00df1d4d2e8dc5b465dad60a4bf0122
1daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul#ifndef EGLAPI_INCLUDED 2daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul#define EGLAPI_INCLUDED 3daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 4daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/** 5daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul * Typedefs for all EGL API entrypoint functions. 6daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul */ 7daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 8daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 9daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* driver funcs */ 10daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*Initialize_t)(_EGLDriver *, EGLDisplay dpy, EGLint *major, EGLint *minor); 11daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*Terminate_t)(_EGLDriver *, EGLDisplay dpy); 12daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 13daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* config funcs */ 14daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*GetConfigs_t)(_EGLDriver *drv, EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); 15daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*ChooseConfig_t)(_EGLDriver *drv, EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); 16daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*GetConfigAttrib_t)(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); 17daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 18daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* context funcs */ 19daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLContext (*CreateContext_t)(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config, EGLContext share_list, const EGLint *attrib_list); 20daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*DestroyContext_t)(_EGLDriver *drv, EGLDisplay dpy, EGLContext ctx); 21daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*MakeCurrent_t)(_EGLDriver *drv, EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); 22daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*QueryContext_t)(_EGLDriver *drv, EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); 23daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 24daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* surface funcs */ 25daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLSurface (*CreateWindowSurface_t)(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config, NativeWindowType window, const EGLint *attrib_list); 26daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLSurface (*CreatePixmapSurface_t)(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config, NativePixmapType pixmap, const EGLint *attrib_list); 27daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLSurface (*CreatePbufferSurface_t)(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); 28daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*DestroySurface_t)(_EGLDriver *drv, EGLDisplay dpy, EGLSurface surface); 29daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*QuerySurface_t)(_EGLDriver *drv, EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); 30daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*SurfaceAttrib_t)(_EGLDriver *drv, EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); 31daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*BindTexImage_t)(_EGLDriver *drv, EGLDisplay dpy, EGLSurface surface, EGLint buffer); 32daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*ReleaseTexImage_t)(_EGLDriver *drv, EGLDisplay dpy, EGLSurface surface, EGLint buffer); 33daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*SwapInterval_t)(_EGLDriver *drv, EGLDisplay dpy, EGLint interval); 34daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*SwapBuffers_t)(_EGLDriver *drv, EGLDisplay dpy, EGLSurface draw); 35daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*CopyBuffers_t)(_EGLDriver *drv, EGLDisplay dpy, EGLSurface surface, NativePixmapType target); 36daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 37daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* misc funcs */ 38daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef const char *(*QueryString_t)(_EGLDriver *drv, EGLDisplay dpy, EGLint name); 39daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*WaitGL_t)(_EGLDriver *drv, EGLDisplay dpy); 40daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*WaitNative_t)(_EGLDriver *drv, EGLDisplay dpy, EGLint engine); 41daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 42daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 43daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/* EGL_MESA_screen extension */ 44daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*ChooseModeMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes); 45daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*GetModesMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint mode_size, EGLint *num_mode); 46daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*GetModeAttribMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value); 47daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*CopyContextMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask); 48daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*GetScreensMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens); 49daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLSurface (*CreateScreenSurfaceMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); 50daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*ShowSurfaceMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, EGLSurface surface, EGLModeMESA mode); 51daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*ScreenPositionMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y); 52daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*QueryScreenMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value); 53daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*QueryScreenSurfaceMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface); 54daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef EGLBoolean (*QueryScreenModeMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode); 55daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paultypedef const char * (*QueryModeStringMESA_t)(_EGLDriver *drv, EGLDisplay dpy, EGLModeMESA mode); 56daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 57daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 58daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul/** 59daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul * The API dispatcher jumps through these functions 60daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul */ 61daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paulstruct _egl_api 62daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul{ 63daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul Initialize_t Initialize; 64daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul Terminate_t Terminate; 65daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 66daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul GetConfigs_t GetConfigs; 67daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul ChooseConfig_t ChooseConfig; 68daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul GetConfigAttrib_t GetConfigAttrib; 69daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 70daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul CreateContext_t CreateContext; 71daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul DestroyContext_t DestroyContext; 72daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul MakeCurrent_t MakeCurrent; 73daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul QueryContext_t QueryContext; 74daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 75daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul CreateWindowSurface_t CreateWindowSurface; 76daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul CreatePixmapSurface_t CreatePixmapSurface; 77daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul CreatePbufferSurface_t CreatePbufferSurface; 78daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul DestroySurface_t DestroySurface; 79daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul QuerySurface_t QuerySurface; 80daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul SurfaceAttrib_t SurfaceAttrib; 81daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul BindTexImage_t BindTexImage; 82daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul ReleaseTexImage_t ReleaseTexImage; 83daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul SwapInterval_t SwapInterval; 84daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul SwapBuffers_t SwapBuffers; 85daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul CopyBuffers_t CopyBuffers; 86daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 87daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul QueryString_t QueryString; 88daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul WaitGL_t WaitGL; 89daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul WaitNative_t WaitNative; 90daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 91daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul /* EGL_MESA_screen extension */ 92daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul ChooseModeMESA_t ChooseModeMESA; 93daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul GetModesMESA_t GetModesMESA; 94daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul GetModeAttribMESA_t GetModeAttribMESA; 95daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul CopyContextMESA_t CopyContextMESA; 96daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul GetScreensMESA_t GetScreensMESA; 97daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul CreateScreenSurfaceMESA_t CreateScreenSurfaceMESA; 98daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul ShowSurfaceMESA_t ShowSurfaceMESA; 99daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul ScreenPositionMESA_t ScreenPositionMESA; 100daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul QueryScreenMESA_t QueryScreenMESA; 101daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul QueryScreenSurfaceMESA_t QueryScreenSurfaceMESA; 102daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul QueryScreenModeMESA_t QueryScreenModeMESA; 103daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul QueryModeStringMESA_t QueryModeStringMESA; 104daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul}; 105daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul 106daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul#endif /* EGLAPI_INCLUDED */ 107