diff options
Diffstat (limited to 'src/egl/main/egldriver.h')
-rw-r--r-- | src/egl/main/egldriver.h | 46 |
1 files changed, 32 insertions, 14 deletions
diff --git a/src/egl/main/egldriver.h b/src/egl/main/egldriver.h index 6c848eb35e..d9d61297c1 100644 --- a/src/egl/main/egldriver.h +++ b/src/egl/main/egldriver.h @@ -16,20 +16,30 @@ struct _egl_driver const char *Args; /**< args to load this driver */ const char *Name; /**< name of this driver */ - /**< probe a display to see if it is supported */ - EGLBoolean (*Probe)(_EGLDriver *drv, _EGLDisplay *dpy); - /**< called before dlclose to release this driver */ + + /** + * Probe a display and return a score. + * + * Roughly, + * 50 means the driver supports the display; + * 90 means the driver can accelerate the display; + * 100 means a perfect match. + */ + EGLint (*Probe)(_EGLDriver *drv, _EGLDisplay *dpy); + + /** + * Release the driver resource. + * + * It is called before dlclose(). + */ void (*Unload)(_EGLDriver *drv); _EGLAPI API; /**< EGL API dispatch table */ }; -extern _EGLDriver *_eglMain(const char *args); - - -extern const char * -_eglPreloadDriver(_EGLDisplay *dpy); +PUBLIC _EGLDriver * +_eglMain(const char *args); extern _EGLDriver * @@ -40,20 +50,28 @@ extern EGLBoolean _eglCloseDriver(_EGLDriver *drv, _EGLDisplay *dpy); -void -_eglUnloadDrivers(void); +extern EGLBoolean +_eglPreloadDrivers(void); -extern _EGLDriver * -_eglLookupDriver(EGLDisplay d); +extern void +_eglUnloadDrivers(void); -extern void +PUBLIC void _eglInitDriverFallbacks(_EGLDriver *drv); -extern EGLint +PUBLIC EGLint _eglFindAPIs(void); +PUBLIC void +_eglSetProbeCache(EGLint key, const void *val); + + +PUBLIC const void * +_eglGetProbeCache(EGLint key); + + #endif /* EGLDRIVER_INCLUDED */ |