3 #include "eglglobals.h"
4 #include "egldisplay.h"
9 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
12 static _EGL_DECLARE_MUTEX(_eglGlobalMutex
);
13 struct _egl_global _eglGlobal
=
15 &_eglGlobalMutex
, /* Mutex */
16 1, /* FreeScreenHandle */
17 0x0, /* ClientAPIsMask */
18 { 0x0 }, /* ClientAPIs */
20 { NULL
}, /* Drivers */
21 0, /* NumAtExitCalls */
22 { NULL
}, /* AtExitCalls */
30 for (i
= _eglGlobal
.NumAtExitCalls
- 1; i
>= 0; i
--)
31 _eglGlobal
.AtExitCalls
[i
]();
36 _eglAddAtExitCall(void (*func
)(void))
39 static EGLBoolean registered
= EGL_FALSE
;
41 _eglLockMutex(_eglGlobal
.Mutex
);
45 registered
= EGL_TRUE
;
48 assert(_eglGlobal
.NumAtExitCalls
< ARRAY_SIZE(_eglGlobal
.AtExitCalls
));
49 _eglGlobal
.AtExitCalls
[_eglGlobal
.NumAtExitCalls
++] = func
;
51 _eglUnlockMutex(_eglGlobal
.Mutex
);