diff options
author | Brian Paul <[email protected]> | 2005-04-22 21:09:39 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2005-04-22 21:09:39 +0000 |
commit | adbff7e977c7c768e752a24fb643d68bdf961bfe (patch) | |
tree | 8ad42d96c55f25fe05921792507bc9b69d82e8f3 /src/egl/main/eglglobals.c | |
parent | a661654a33ba38990719ac9f5aea2910a5d5bf77 (diff) |
initial EGL code
Diffstat (limited to 'src/egl/main/eglglobals.c')
-rw-r--r-- | src/egl/main/eglglobals.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/egl/main/eglglobals.c b/src/egl/main/eglglobals.c new file mode 100644 index 00000000000..102e5506206 --- /dev/null +++ b/src/egl/main/eglglobals.c @@ -0,0 +1,51 @@ +#include <stdio.h> +#include "eglglobals.h" + + +struct _egl_global _eglGlobal = { EGL_FALSE }; + + +/** + * Init the fields in the _eglGlobal struct + * May be safely called more than once. + */ +void +_eglInitGlobals(void) +{ + if (!_eglGlobal.Initialized) { + _eglGlobal.Displays = _eglNewHashTable(); + _eglGlobal.Contexts = _eglNewHashTable(); + _eglGlobal.Surfaces = _eglNewHashTable(); + _eglGlobal.CurrentContext = EGL_NO_CONTEXT; + _eglGlobal.LastError = EGL_SUCCESS; + _eglGlobal.Initialized = EGL_TRUE; + } +} + + +/** + * Should call this via an atexit handler. + */ +void +_eglDestroyGlobals(void) +{ + /* XXX TODO walk over table entries, deleting each */ + _eglDeleteHashTable(_eglGlobal.Displays); + _eglDeleteHashTable(_eglGlobal.Contexts); + _eglDeleteHashTable(_eglGlobal.Surfaces); +} + + + +/** + * Record EGL error code. + */ +void +_eglError(EGLint errCode, const char *msg) +{ + if (_eglGlobal.LastError == EGL_SUCCESS) { + _eglGlobal.LastError = errCode; + /* XXX temporary */ + fprintf(stderr, "EGL Error 0x%x in %s\n", errCode, msg); + } +} |