72 lines
1.1 KiB
C
72 lines
1.1 KiB
C
#ifndef EGLGLOBALS_INCLUDED
|
|
#define EGLGLOBALS_INCLUDED
|
|
|
|
#include "egltypedefs.h"
|
|
#include "eglhash.h"
|
|
|
|
|
|
/**
|
|
* Per-thread info
|
|
*/
|
|
struct _egl_thread_info
|
|
{
|
|
EGLint LastError;
|
|
_EGLContext *CurrentContext;
|
|
EGLenum CurrentAPI;
|
|
};
|
|
|
|
|
|
/**
|
|
* Global library data
|
|
*/
|
|
struct _egl_global
|
|
{
|
|
EGLBoolean Initialized;
|
|
|
|
_EGLHashtable *Displays;
|
|
_EGLHashtable *Surfaces;
|
|
|
|
EGLScreenMESA FreeScreenHandle;
|
|
|
|
/* bitmaks of supported APIs (supported by _some_ driver) */
|
|
EGLint ClientAPIsMask;
|
|
|
|
char ClientAPIs[1000]; /**< updated by eglQueryString */
|
|
|
|
/* XXX temporary - should be thread-specific data (TSD) */
|
|
_EGLThreadInfo *ThreadInfo;
|
|
|
|
EGLint NumDrivers;
|
|
_EGLDriver *Drivers[10];
|
|
};
|
|
|
|
|
|
extern struct _egl_global _eglGlobal;
|
|
|
|
|
|
extern void
|
|
_eglInitGlobals(void);
|
|
|
|
|
|
extern void
|
|
_eglDestroyGlobals(void);
|
|
|
|
|
|
extern _EGLThreadInfo *
|
|
_eglNewThreadInfo(void);
|
|
|
|
|
|
extern void
|
|
_eglDeleteThreadData(_EGLThreadInfo *t);
|
|
|
|
|
|
extern _EGLThreadInfo *
|
|
_eglGetCurrentThread(void);
|
|
|
|
|
|
extern void
|
|
_eglError(EGLint errCode, const char *msg);
|
|
|
|
|
|
#endif /* EGLGLOBALS_INCLUDED */
|