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-30 00:02:31 +01:00
|
|
|
const char *Name; /**< name of this driver */
|
|
|
|
|
2008-05-28 22:43:41 +01:00
|
|
|
int APImajor, APIminor; /**< as returned by eglInitialize() */
|
2008-05-30 00:02:31 +01:00
|
|
|
char Version[1000]; /**< initialized from APImajor/minor, Name */
|
2008-05-28 22:43:41 +01:00
|
|
|
|
2008-05-30 20:45:40 +01:00
|
|
|
/** Bitmask of supported APIs (EGL_xx_BIT) set by the driver during init */
|
|
|
|
EGLint ClientAPIsMask;
|
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 */
|