| #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 *Contexts; |
| _EGLHashtable *Surfaces; |
| |
| EGLScreenMESA FreeScreenHandle; |
| |
| /* XXX these may be temporary */ |
| EGLBoolean OpenGLESAPISupported; |
| EGLBoolean OpenVGAPISupported; |
| |
| /* XXX temporary - should be thread-specific data (TSD) */ |
| _EGLThreadInfo *ThreadInfo; |
| }; |
| |
| |
| 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 */ |