diff options
author | Chia-I Wu <[email protected]> | 2009-07-17 11:42:04 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-07-17 11:42:04 -0600 |
commit | 21b635ffa8b59049a95d50d4c7b7a8ff6413b730 (patch) | |
tree | 935d88e82af2736f846c3e738e42b77400edcb8b /src/egl/main/eglapi.c | |
parent | 75da80b29556e6dbbba21e5297ca440e475f65cb (diff) |
egl: Extend per-thread info for multiple current contexts.
EGL allows multiple current contexts, as long as they are bound to
different client APIs.
Signed-off-by: Chia-I Wu <[email protected]>
Diffstat (limited to 'src/egl/main/eglapi.c')
-rw-r--r-- | src/egl/main/eglapi.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index 8f4a489b913..332b98adf2c 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -550,11 +550,14 @@ eglBindAPI(EGLenum api) if (_eglIsCurrentThreadDummy()) return _eglError(EGL_BAD_ALLOC, "eglBindAPI"); + if (!_eglIsApiValid(api)) + return _eglError(EGL_BAD_PARAMETER, "eglBindAPI"); + switch (api) { #ifdef EGL_VERSION_1_4 case EGL_OPENGL_API: if (_eglGlobal.ClientAPIsMask & EGL_OPENGL_BIT) { - t->CurrentAPI = api; + t->CurrentAPIIndex = _eglConvertApiToIndex(api); return EGL_TRUE; } _eglError(EGL_BAD_PARAMETER, "eglBindAPI"); @@ -562,14 +565,14 @@ eglBindAPI(EGLenum api) #endif case EGL_OPENGL_ES_API: if (_eglGlobal.ClientAPIsMask & (EGL_OPENGL_ES_BIT | EGL_OPENGL_ES2_BIT)) { - t->CurrentAPI = api; + t->CurrentAPIIndex = _eglConvertApiToIndex(api); return EGL_TRUE; } _eglError(EGL_BAD_PARAMETER, "eglBindAPI"); return EGL_FALSE; case EGL_OPENVG_API: if (_eglGlobal.ClientAPIsMask & EGL_OPENVG_BIT) { - t->CurrentAPI = api; + t->CurrentAPIIndex = _eglConvertApiToIndex(api); return EGL_TRUE; } _eglError(EGL_BAD_PARAMETER, "eglBindAPI"); @@ -589,7 +592,7 @@ eglQueryAPI(void) { /* returns one of EGL_OPENGL_API, EGL_OPENGL_ES_API or EGL_OPENVG_API */ _EGLThreadInfo *t = _eglGetCurrentThread(); - return t->CurrentAPI; + return _eglConvertApiFromIndex(t->CurrentAPIIndex); } |