+ EGLBoolean (*MakeCurrent)(_EGLDisplay *disp,
+ _EGLSurface *draw, _EGLSurface *read,
+ _EGLContext *ctx);
+
+ /* surface funcs */
+ _EGLSurface *(*CreateWindowSurface)(_EGLDisplay *disp, _EGLConfig *config,
+ void *native_window, const EGLint *attrib_list);
+ _EGLSurface *(*CreatePixmapSurface)(_EGLDisplay *disp, _EGLConfig *config,
+ void *native_pixmap, const EGLint *attrib_list);
+ _EGLSurface *(*CreatePbufferSurface)(_EGLDisplay *disp, _EGLConfig *config,
+ const EGLint *attrib_list);
+ EGLBoolean (*DestroySurface)(_EGLDisplay *disp, _EGLSurface *surface);
+ EGLBoolean (*QuerySurface)(_EGLDisplay *disp, _EGLSurface *surface,
+ EGLint attribute, EGLint *value);
+ EGLBoolean (*BindTexImage)(_EGLDisplay *disp, _EGLSurface *surface,
+ EGLint buffer);
+ EGLBoolean (*ReleaseTexImage)(_EGLDisplay *disp, _EGLSurface *surface,
+ EGLint buffer);
+ EGLBoolean (*SwapInterval)(_EGLDisplay *disp, _EGLSurface *surf,
+ EGLint interval);
+ EGLBoolean (*SwapBuffers)(_EGLDisplay *disp, _EGLSurface *draw);
+ EGLBoolean (*CopyBuffers)(_EGLDisplay *disp, _EGLSurface *surface,
+ void *native_pixmap_target);
+ EGLBoolean (*SetDamageRegion)(_EGLDisplay *disp, _EGLSurface *surface,
+ EGLint *rects, EGLint n_rects);
+
+ /* misc functions */
+ EGLBoolean (*WaitClient)(_EGLDisplay *disp, _EGLContext *ctx);
+ EGLBoolean (*WaitNative)(EGLint engine);
+
+ /* this function may be called from multiple threads at the same time */
+ _EGLProc (*GetProcAddress)(const char *procname);
+
+ _EGLImage *(*CreateImageKHR)(_EGLDisplay *disp, _EGLContext *ctx,
+ EGLenum target, EGLClientBuffer buffer,
+ const EGLint *attr_list);
+ EGLBoolean (*DestroyImageKHR)(_EGLDisplay *disp, _EGLImage *image);
+
+ _EGLSync *(*CreateSyncKHR)(_EGLDisplay *disp, EGLenum type,
+ const EGLAttrib *attrib_list);
+ EGLBoolean (*DestroySyncKHR)(_EGLDisplay *disp, _EGLSync *sync);
+ EGLint (*ClientWaitSyncKHR)(_EGLDisplay *disp, _EGLSync *sync,
+ EGLint flags, EGLTime timeout);
+ EGLint (*WaitSyncKHR)(_EGLDisplay *disp, _EGLSync *sync);
+ EGLBoolean (*SignalSyncKHR)(_EGLDisplay *disp, _EGLSync *sync, EGLenum mode);
+ EGLint (*DupNativeFenceFDANDROID)(_EGLDisplay *disp, _EGLSync *sync);
+
+ EGLBoolean (*SwapBuffersRegionNOK)(_EGLDisplay *disp, _EGLSurface *surf,
+ EGLint numRects, const EGLint *rects);
+
+ _EGLImage *(*CreateDRMImageMESA)(_EGLDisplay *disp, const EGLint *attr_list);
+ EGLBoolean (*ExportDRMImageMESA)(_EGLDisplay *disp, _EGLImage *img,
+ EGLint *name, EGLint *handle,
+ EGLint *stride);
+
+ EGLBoolean (*BindWaylandDisplayWL)(_EGLDisplay *disp, struct wl_display *display);
+ EGLBoolean (*UnbindWaylandDisplayWL)(_EGLDisplay *disp, struct wl_display *display);
+ EGLBoolean (*QueryWaylandBufferWL)(_EGLDisplay *displ, struct wl_resource *buffer,
+ EGLint attribute, EGLint *value);
+ struct wl_buffer *(*CreateWaylandBufferFromImageWL)(_EGLDisplay *disp, _EGLImage *img);
+
+ EGLBoolean (*SwapBuffersWithDamageEXT)(_EGLDisplay *disp, _EGLSurface *surface,
+ const EGLint *rects, EGLint n_rects);
+
+ EGLBoolean (*PostSubBufferNV)(_EGLDisplay *disp, _EGLSurface *surface,
+ EGLint x, EGLint y, EGLint width, EGLint height);
+
+ EGLint (*QueryBufferAge)(_EGLDisplay *disp, _EGLSurface *surface);
+ EGLBoolean (*GetSyncValuesCHROMIUM)(_EGLDisplay *disp, _EGLSurface *surface,
+ EGLuint64KHR *ust, EGLuint64KHR *msc,
+ EGLuint64KHR *sbc);
+
+ EGLBoolean (*ExportDMABUFImageQueryMESA)(_EGLDisplay *disp, _EGLImage *img,
+ EGLint *fourcc, EGLint *nplanes,
+ EGLuint64KHR *modifiers);
+ EGLBoolean (*ExportDMABUFImageMESA)(_EGLDisplay *disp, _EGLImage *img,
+ EGLint *fds, EGLint *strides,
+ EGLint *offsets);
+
+ int (*GLInteropQueryDeviceInfo)(_EGLDisplay *disp, _EGLContext *ctx,
+ struct mesa_glinterop_device_info *out);
+ int (*GLInteropExportObject)(_EGLDisplay *disp, _EGLContext *ctx,
+ struct mesa_glinterop_export_in *in,
+ struct mesa_glinterop_export_out *out);
+
+ EGLBoolean (*QueryDmaBufFormatsEXT)(_EGLDisplay *disp,
+ EGLint max_formats, EGLint *formats,
+ EGLint *num_formats);
+ EGLBoolean (*QueryDmaBufModifiersEXT)(_EGLDisplay *disp, EGLint format,
+ EGLint max_modifiers, EGLuint64KHR *modifiers,
+ EGLBoolean *external_only,
+ EGLint *num_modifiers);
+
+ void (*SetBlobCacheFuncsANDROID)(_EGLDisplay *disp,
+ EGLSetBlobFuncANDROID set,
+ EGLGetBlobFuncANDROID get);