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