Merge branch 'mesa_7_5_branch'
[mesa.git] / src / egl / main / egldriver.h
1 #ifndef EGLDRIVER_INCLUDED
2 #define EGLDRIVER_INCLUDED
3
4
5 #include "egltypedefs.h"
6 #include "eglapi.h"
7
8
9 /**
10 * Base class for device drivers.
11 */
12 struct _egl_driver
13 {
14 void *LibHandle; /**< dlopen handle */
15 const char *Path; /**< path to this driver */
16 const char *Args; /**< args to load this driver */
17
18 const char *Name; /**< name of this driver */
19 /**< probe a display to see if it is supported */
20 EGLBoolean (*Probe)(_EGLDriver *drv, _EGLDisplay *dpy);
21 /**< called before dlclose to release this driver */
22 void (*Unload)(_EGLDriver *drv);
23
24 _EGLAPI API; /**< EGL API dispatch table */
25 };
26
27
28 extern _EGLDriver *_eglMain(const char *args);
29
30
31 extern const char *
32 _eglPreloadDriver(_EGLDisplay *dpy);
33
34
35 extern _EGLDriver *
36 _eglOpenDriver(_EGLDisplay *dpy);
37
38
39 extern EGLBoolean
40 _eglCloseDriver(_EGLDriver *drv, _EGLDisplay *dpy);
41
42
43 void
44 _eglUnloadDrivers(void);
45
46
47 extern _EGLDriver *
48 _eglLookupDriver(EGLDisplay d);
49
50
51 extern void
52 _eglInitDriverFallbacks(_EGLDriver *drv);
53
54
55 extern EGLint
56 _eglFindAPIs(void);
57
58
59 #endif /* EGLDRIVER_INCLUDED */