6265b07529aca091e13734841dc43d74e1f31ac9
2 #include "eglglobals.h"
5 struct _egl_global _eglGlobal
= { EGL_FALSE
};
9 * Init the fields in the _eglGlobal struct
10 * May be safely called more than once.
15 if (!_eglGlobal
.Initialized
) {
16 _eglGlobal
.Displays
= _eglNewHashTable();
17 _eglGlobal
.Contexts
= _eglNewHashTable();
18 _eglGlobal
.Surfaces
= _eglNewHashTable();
19 _eglGlobal
.FreeScreenHandle
= 1;
20 _eglGlobal
.CurrentContext
= EGL_NO_CONTEXT
;
21 _eglGlobal
.LastError
= EGL_SUCCESS
;
22 _eglGlobal
.Initialized
= EGL_TRUE
;
28 * Should call this via an atexit handler.
31 _eglDestroyGlobals(void)
33 /* XXX TODO walk over table entries, deleting each */
34 _eglDeleteHashTable(_eglGlobal
.Displays
);
35 _eglDeleteHashTable(_eglGlobal
.Contexts
);
36 _eglDeleteHashTable(_eglGlobal
.Surfaces
);
42 * Record EGL error code.
45 _eglError(EGLint errCode
, const char *msg
)
47 if (_eglGlobal
.LastError
== EGL_SUCCESS
) {
48 _eglGlobal
.LastError
= errCode
;
50 fprintf(stderr
, "EGL Error 0x%x in %s\n", errCode
, msg
);
56 * Return a new screen handle/ID.
57 * NOTE: we never reuse these!
60 _eglAllocScreenHandle(void)
62 EGLScreenMESA s
= _eglGlobal
.FreeScreenHandle
;
63 _eglGlobal
.FreeScreenHandle
++;