#ifndef EGLDRIVER_INCLUDED #define EGLDRIVER_INCLUDED #include "egltypedefs.h" #include "eglapi.h" /* should probably use a dynamic-length string, but this will do */ #define MAX_EXTENSIONS_LEN 1000 /** * Optional EGL extensions info. */ struct _egl_extensions { EGLBoolean MESA_screen_surface; EGLBoolean MESA_copy_context; char String[MAX_EXTENSIONS_LEN]; }; /** * Base class for device drivers. */ struct _egl_driver { EGLBoolean Initialized; /* set by driver after initialized */ void *LibHandle; /* dlopen handle */ _EGLDisplay *Display; int ABIversion; int APImajor, APIminor; /* returned through eglInitialize */ const char *ClientAPIs; _EGLAPI API; _EGLExtensions Extensions; }; extern _EGLDriver *_eglMain(_EGLDisplay *dpy); extern _EGLDriver * _eglChooseDriver(EGLDisplay dpy); extern _EGLDriver * _eglOpenDriver(_EGLDisplay *dpy, const char *driverName); extern EGLBoolean _eglCloseDriver(_EGLDriver *drv, EGLDisplay dpy); extern _EGLDriver * _eglLookupDriver(EGLDisplay d); extern void _eglInitDriverFallbacks(_EGLDriver *drv); extern const char * _eglQueryString(_EGLDriver *drv, EGLDisplay dpy, EGLint name); extern EGLBoolean _eglWaitGL(_EGLDriver *drv, EGLDisplay dpy); extern EGLBoolean _eglWaitNative(_EGLDriver *drv, EGLDisplay dpy, EGLint engine); #endif /* EGLDRIVER_INCLUDED */