3 #include "eglglobals.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 */
19 { NULL
}, /* Drivers */
20 1, /* NumAtExitCalls */
31 for (i
= _eglGlobal
.NumAtExitCalls
- 1; i
>= 0; i
--)
32 _eglGlobal
.AtExitCalls
[i
]();
37 _eglAddAtExitCall(void (*func
)(void))
40 static EGLBoolean registered
= EGL_FALSE
;
42 _eglLockMutex(_eglGlobal
.Mutex
);
46 registered
= EGL_TRUE
;
49 assert(_eglGlobal
.NumAtExitCalls
< ARRAY_SIZE(_eglGlobal
.AtExitCalls
));
50 _eglGlobal
.AtExitCalls
[_eglGlobal
.NumAtExitCalls
++] = func
;
52 _eglUnlockMutex(_eglGlobal
.Mutex
);