diff options
author | Chia-I Wu <[email protected]> | 2010-07-04 15:55:12 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2010-07-06 16:16:39 +0800 |
commit | f2aa361f3b58a91780c9358b3f8716f6434074c7 (patch) | |
tree | a7999f2c026175ef609853b405cadac75e3fef84 /src/egl/main/egldriver.h | |
parent | cf588ab3f1edb89be4cd57045a3888ff482fa817 (diff) |
egl: Rework driver loading.
Driver loading is now splitted into two stages. In the first stage, an
_EGLModule is created for each driver: user driver, default drivers, and
all files in the search directories that start with "egl_". Modules are
not loaded at this stage.
In the second stage, each module is loaded to initialize a display. The
process stops at the first module that can initialize the display.
If eglGetProcAddress is called before eglInitialize, the same code path
will be taken to find the first module that supports
EGL_DEFAULT_DISPLAY. Because we do not want to initialize the display,
drv->Probe is used instead in this case.
Diffstat (limited to 'src/egl/main/egldriver.h')
-rw-r--r-- | src/egl/main/egldriver.h | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/egl/main/egldriver.h b/src/egl/main/egldriver.h index 711de8ad205..c618feb6b02 100644 --- a/src/egl/main/egldriver.h +++ b/src/egl/main/egldriver.h @@ -41,10 +41,6 @@ typedef _EGLDriver *(*_EGLMain_t)(const char *args); */ struct _egl_driver { - void *LibHandle; /**< dlopen handle */ - const char *Path; /**< path to this driver */ - const char *Args; /**< args to load this driver */ - const char *Name; /**< name of this driver */ /** @@ -73,21 +69,17 @@ _eglMain(const char *args); extern _EGLDriver * -_eglMatchDriver(_EGLDisplay *dpy); +_eglMatchDriver(_EGLDisplay *dpy, EGLBoolean probe_only); -extern EGLBoolean -_eglPreloadDrivers(void); +extern __eglMustCastToProperFunctionPointerType +_eglGetDriverProc(const char *procname); extern void _eglUnloadDrivers(void); -extern _EGLDriver * -_eglLoadDefaultDriver(EGLDisplay dpy, EGLint *major, EGLint *minor); - - PUBLIC void _eglInitDriverFallbacks(_EGLDriver *drv); |