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 NULL
, /* DisplayList */
17 1, /* FreeScreenHandle */
19 { NULL
}, /* Drivers */
20 2, /* NumAtExitCalls */
32 for (i
= _eglGlobal
.NumAtExitCalls
- 1; i
>= 0; i
--)
33 _eglGlobal
.AtExitCalls
[i
]();
38 _eglAddAtExitCall(void (*func
)(void))
41 static EGLBoolean registered
= EGL_FALSE
;
43 _eglLockMutex(_eglGlobal
.Mutex
);
47 registered
= EGL_TRUE
;
50 assert(_eglGlobal
.NumAtExitCalls
< ARRAY_SIZE(_eglGlobal
.AtExitCalls
));
51 _eglGlobal
.AtExitCalls
[_eglGlobal
.NumAtExitCalls
++] = func
;
53 _eglUnlockMutex(_eglGlobal
.Mutex
);