2005-04-22 22:09:39 +01:00
|
|
|
#ifndef EGLDRIVER_INCLUDED
|
|
|
|
#define EGLDRIVER_INCLUDED
|
|
|
|
|
|
|
|
|
|
|
|
#include "egltypedefs.h"
|
2005-11-24 04:02:16 +00:00
|
|
|
#include "eglapi.h"
|
2008-05-28 22:22:17 +01:00
|
|
|
#include "egldefines.h"
|
2005-05-16 03:15:42 +01:00
|
|
|
|
2005-04-22 22:09:39 +01:00
|
|
|
|
2005-11-29 04:43:37 +00:00
|
|
|
/**
|
|
|
|
* Optional EGL extensions info.
|
|
|
|
*/
|
|
|
|
struct _egl_extensions
|
|
|
|
{
|
|
|
|
EGLBoolean MESA_screen_surface;
|
|
|
|
EGLBoolean MESA_copy_context;
|
|
|
|
|
2008-05-28 22:22:17 +01:00
|
|
|
char String[_EGL_MAX_EXTENSIONS_LEN];
|
2005-11-29 04:43:37 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2005-04-22 22:09:39 +01:00
|
|
|
/**
|
|
|
|
* Base class for device drivers.
|
|
|
|
*/
|
|
|
|
struct _egl_driver
|
|
|
|
{
|
2008-05-28 22:43:41 +01:00
|
|
|
EGLBoolean Initialized; /**< set by driver after initialized */
|
2005-04-22 22:09:39 +01:00
|
|
|
|
2008-05-28 22:43:41 +01:00
|
|
|
void *LibHandle; /**< dlopen handle */
|
2005-04-22 22:09:39 +01:00
|
|
|
|
2008-05-28 22:43:41 +01:00
|
|
|
int APImajor, APIminor; /**< as returned by eglInitialize() */
|
|
|
|
char Version[10]; /**< initialized from APImajor/minor */
|
|
|
|
|
2006-01-30 00:10:55 +00:00
|
|
|
const char *ClientAPIs;
|
2005-04-22 22:09:39 +01:00
|
|
|
|
2008-05-28 22:43:41 +01:00
|
|
|
_EGLAPI API; /**< EGL API dispatch table */
|
2005-05-16 03:15:42 +01:00
|
|
|
|
2005-11-29 04:43:37 +00:00
|
|
|
_EGLExtensions Extensions;
|
2005-04-22 22:09:39 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2008-05-28 19:56:36 +01:00
|
|
|
extern _EGLDriver *_eglMain(_EGLDisplay *dpy, const char *args);
|
2005-04-22 22:09:39 +01:00
|
|
|
|
|
|
|
|
2008-05-27 23:48:23 +01:00
|
|
|
extern const char *
|
|
|
|
_eglChooseDriver(_EGLDisplay *dpy);
|
2005-04-22 22:09:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
extern _EGLDriver *
|
2008-05-28 19:56:36 +01:00
|
|
|
_eglOpenDriver(_EGLDisplay *dpy, const char *driverName, const char *args);
|
2005-04-22 22:09:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
extern EGLBoolean
|
|
|
|
_eglCloseDriver(_EGLDriver *drv, EGLDisplay dpy);
|
|
|
|
|
|
|
|
|
|
|
|
extern _EGLDriver *
|
|
|
|
_eglLookupDriver(EGLDisplay d);
|
|
|
|
|
|
|
|
|
|
|
|
extern void
|
|
|
|
_eglInitDriverFallbacks(_EGLDriver *drv);
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* EGLDRIVER_INCLUDED */
|