From f6d90b6c653816f4f4f25ea6bfdb20e8e56c1f9a Mon Sep 17 00:00:00 2001 From: Sangjin Kim Date: Thu, 11 Apr 2013 19:24:57 +0900 Subject: [PATCH] Update the stored error code when EGL API calls finished. Change-Id: I1295626aa9767c691d0a8911553e1518ad10c123 Signed-off-by: Sangjin Kim --- egl_1_4/31Error.c | 3 +-- egl_1_4/32GetDisplay.c | 1 + egl_1_4/32Initialize.c | 1 + egl_1_4/32Terminate.c | 1 + egl_1_4/33QueryString.c | 3 +++ egl_1_4/34ChooseConfig.c | 6 ++++-- egl_1_4/34GetConfigAttrib.c | 2 ++ egl_1_4/34GetConfigs.c | 2 ++ egl_1_4/35CreatePbufferSurface.c | 2 ++ egl_1_4/35CreatePixmapSurface.c | 2 ++ egl_1_4/35CreateWindowSurface.c | 2 ++ egl_1_4/35DestroySurface.c | 1 + egl_1_4/36BindTexImage.c | 1 + egl_1_4/36QuerySurface.c | 1 + egl_1_4/36ReleaseTexImage.c | 1 + egl_1_4/36SurfaceAttrib.c | 2 ++ egl_1_4/37BindAPI.c | 2 ++ egl_1_4/37CreateContext.c | 1 + egl_1_4/37MakeCurrent.c | 1 + egl_1_4/37QueryContext.c | 2 ++ egl_1_4/39CopyBuffers.c | 2 ++ egl_1_4/42CreateImageKHR.c | 1 + packaging/simulator-opengl.spec | 2 +- 23 files changed, 37 insertions(+), 5 deletions(-) diff --git a/egl_1_4/31Error.c b/egl_1_4/31Error.c index 5fadeba..a9acd9d 100755 --- a/egl_1_4/31Error.c +++ b/egl_1_4/31Error.c @@ -40,8 +40,7 @@ EGLint EGLAPIENTRY eglGetError(void) { } void EGLAPIENTRY EGLINTER(SetError)(EGLint iError) { - if (EGLINTER(global).iLastError == EGL_SUCCESS) { + EGLINTER(global).iLastError = iError; - } } diff --git a/egl_1_4/32GetDisplay.c b/egl_1_4/32GetDisplay.c index fda853d..bf0f6ec 100755 --- a/egl_1_4/32GetDisplay.c +++ b/egl_1_4/32GetDisplay.c @@ -70,5 +70,6 @@ EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType native) { } else { } + EGLINTER(SetError)(EGL_SUCCESS); return pDisplay->unique; } diff --git a/egl_1_4/32Initialize.c b/egl_1_4/32Initialize.c index 00a23d9..1029d7f 100755 --- a/egl_1_4/32Initialize.c +++ b/egl_1_4/32Initialize.c @@ -61,5 +61,6 @@ EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint* major, EGLint* mino } if (major != NULL) *major = HAZEL_EGL_MAJOR; if (minor != NULL) *minor = HAZEL_EGL_MINOR; + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/32Terminate.c b/egl_1_4/32Terminate.c index 1ec3957..e8870a9 100755 --- a/egl_1_4/32Terminate.c +++ b/egl_1_4/32Terminate.c @@ -50,6 +50,7 @@ EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy) { pDisplay->pConfigAnswer = NULL; } pDisplay->bInitialized = EGL_FALSE; + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/33QueryString.c b/egl_1_4/33QueryString.c index 68c85fd..10e54d1 100755 --- a/egl_1_4/33QueryString.c +++ b/egl_1_4/33QueryString.c @@ -44,6 +44,9 @@ const char* EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name) { EGLINTER(SetError)(EGL_NOT_INITIALIZED); return NULL; } + + EGLINTER(SetError)(EGL_SUCCESS); + switch (name) { case EGL_CLIENT_APIS: #if defined(PROVIDING_RUNTIME_BINDING) diff --git a/egl_1_4/34ChooseConfig.c b/egl_1_4/34ChooseConfig.c index d9a6719..8b145e2 100755 --- a/egl_1_4/34ChooseConfig.c +++ b/egl_1_4/34ChooseConfig.c @@ -113,12 +113,12 @@ EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint* attrib_list if (configs != NULL && config_size > 0) { configs[0] = (EGLConfig)pUnit; } - return EGL_TRUE; + goto SETSUCCESS; } pUnit++; } *num_config = 0; - return EGL_TRUE; + goto SETSUCCESS; } int nAnswer = 0; EGLConfig* pAnswer = pDisplay->pConfigAnswer; @@ -172,5 +172,7 @@ EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint* attrib_list *num_config = num; memcpy(configs, pDisplay->pConfigAnswer, num * sizeof(EGLConfig)); } +SETSUCCESS: + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/34GetConfigAttrib.c b/egl_1_4/34GetConfigAttrib.c index 37269e8..5d763c3 100755 --- a/egl_1_4/34GetConfigAttrib.c +++ b/egl_1_4/34GetConfigAttrib.c @@ -113,5 +113,7 @@ EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, return EGL_FALSE; } if (value != NULL) *value = answer; + + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/34GetConfigs.c b/egl_1_4/34GetConfigs.c index 19222f1..8b7c732 100755 --- a/egl_1_4/34GetConfigs.c +++ b/egl_1_4/34GetConfigs.c @@ -193,5 +193,7 @@ EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, configs[i] = (EGLConfig)(pDisplay->pConfigExtra + i); } } + + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/35CreatePbufferSurface.c b/egl_1_4/35CreatePbufferSurface.c index abf3e7d..a712da0 100755 --- a/egl_1_4/35CreatePbufferSurface.c +++ b/egl_1_4/35CreatePbufferSurface.c @@ -135,5 +135,7 @@ EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, EGLINTER(SetError)(EGL_BAD_MATCH); return EGL_NO_SURFACE; } + + EGLINTER(SetError)(EGL_SUCCESS); return (EGLSurface)(pSurface->native); } diff --git a/egl_1_4/35CreatePixmapSurface.c b/egl_1_4/35CreatePixmapSurface.c index 915d7b1..58fce7a 100755 --- a/egl_1_4/35CreatePixmapSurface.c +++ b/egl_1_4/35CreatePixmapSurface.c @@ -124,5 +124,7 @@ EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLINTER(SetError)(EGL_BAD_MATCH); return EGL_NO_SURFACE; } + + EGLINTER(SetError)(EGL_SUCCESS); return (EGLSurface)(pSurface->native); } diff --git a/egl_1_4/35CreateWindowSurface.c b/egl_1_4/35CreateWindowSurface.c index 60f9cce..11a8910 100755 --- a/egl_1_4/35CreateWindowSurface.c +++ b/egl_1_4/35CreateWindowSurface.c @@ -123,5 +123,7 @@ EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLINTER(SetError)(EGL_BAD_MATCH); return EGL_NO_SURFACE; } + + EGLINTER(SetError)(EGL_SUCCESS); return (EGLSurface)(pSurface->native); } diff --git a/egl_1_4/35DestroySurface.c b/egl_1_4/35DestroySurface.c index fe4ee09..9016a54 100755 --- a/egl_1_4/35DestroySurface.c +++ b/egl_1_4/35DestroySurface.c @@ -60,5 +60,6 @@ EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface) { FNPTR(DestroyPbuffer)(pDisplay->native, pSurface->native); EGLINTER(DeleteSurface)(surface); + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/36BindTexImage.c b/egl_1_4/36BindTexImage.c index 54a9dd2..333163f 100755 --- a/egl_1_4/36BindTexImage.c +++ b/egl_1_4/36BindTexImage.c @@ -62,5 +62,6 @@ EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLin } FNPTR(BindTexImageARB)(pDisplay->native, pSurface->native, buffer ); + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/36QuerySurface.c b/egl_1_4/36QuerySurface.c index 11b5de5..8310bf4 100755 --- a/egl_1_4/36QuerySurface.c +++ b/egl_1_4/36QuerySurface.c @@ -131,5 +131,6 @@ EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, break; } if (value != NULL) *value = answer; + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/36ReleaseTexImage.c b/egl_1_4/36ReleaseTexImage.c index 97a4767..d1c5453 100755 --- a/egl_1_4/36ReleaseTexImage.c +++ b/egl_1_4/36ReleaseTexImage.c @@ -62,5 +62,6 @@ EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EG } FNPTR(ReleaseTexImageARB)(pDisplay->native, pSurface->native, buffer); + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/36SurfaceAttrib.c b/egl_1_4/36SurfaceAttrib.c index c46915e..997535d 100755 --- a/egl_1_4/36SurfaceAttrib.c +++ b/egl_1_4/36SurfaceAttrib.c @@ -77,5 +77,7 @@ EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, return EGL_FALSE; break; } + + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/37BindAPI.c b/egl_1_4/37BindAPI.c index 0fede7a..557a28f 100755 --- a/egl_1_4/37BindAPI.c +++ b/egl_1_4/37BindAPI.c @@ -39,10 +39,12 @@ EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api) { case EGL_OPENGL_ES_API: case EGL_OPENVG_API: EGLINTER(global).currentAPI = api; + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; #else case EGL_OPENGL_ES_API: EGLINTER(global).currentAPI = api; + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; case EGL_OPENGL_API: case EGL_OPENVG_API: diff --git a/egl_1_4/37CreateContext.c b/egl_1_4/37CreateContext.c index 95afd38..5c23a6a 100755 --- a/egl_1_4/37CreateContext.c +++ b/egl_1_4/37CreateContext.c @@ -171,5 +171,6 @@ EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, return EGL_NO_CONTEXT; } + EGLINTER(SetError)(EGL_SUCCESS); return (EGLContext)(pContext->native); } diff --git a/egl_1_4/37MakeCurrent.c b/egl_1_4/37MakeCurrent.c index bb18f1f..ca0e3d7 100755 --- a/egl_1_4/37MakeCurrent.c +++ b/egl_1_4/37MakeCurrent.c @@ -281,5 +281,6 @@ EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, if (pPrevious != NULL && pPrevious->deleted && pPrevious != pContext) EGLINTER(FreeContext)(pPrevious); + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/37QueryContext.c b/egl_1_4/37QueryContext.c index 6df346b..28a4fad 100755 --- a/egl_1_4/37QueryContext.c +++ b/egl_1_4/37QueryContext.c @@ -59,5 +59,7 @@ EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, return EGL_FALSE; } if (value != NULL) *value = answer; + + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/39CopyBuffers.c b/egl_1_4/39CopyBuffers.c index 14891f5..f32cccb 100755 --- a/egl_1_4/39CopyBuffers.c +++ b/egl_1_4/39CopyBuffers.c @@ -71,6 +71,8 @@ EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLINTER(SetError)(EGL_BAD_NATIVE_PIXMAP); return EGL_FALSE; } + + EGLINTER(SetError)(EGL_SUCCESS); return EGL_TRUE; } diff --git a/egl_1_4/42CreateImageKHR.c b/egl_1_4/42CreateImageKHR.c index 4cf736f..6290559 100644 --- a/egl_1_4/42CreateImageKHR.c +++ b/egl_1_4/42CreateImageKHR.c @@ -93,5 +93,6 @@ EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, pArea->dpy = pDisplay->native; pArea->pixmap = (Pixmap) buffer; + EGLINTER(SetError)(EGL_SUCCESS); return (EGLImageKHR) unique; } diff --git a/packaging/simulator-opengl.spec b/packaging/simulator-opengl.spec index 17f77ae..da2bdda 100644 --- a/packaging/simulator-opengl.spec +++ b/packaging/simulator-opengl.spec @@ -1,7 +1,7 @@ #sbs-git:sdk/simulator-opengl Name: simulator-opengl Summary: opengl-es acceleration module for emulator -Version: 0.2.10 +Version: 0.2.11 Release: 1 License: MIT URL: http://www.khronos.org -- 2.7.4