summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2011-04-26 14:57:40 -0700
committerMathias Agopian <mathias@google.com>2011-04-26 15:03:27 -0700
commit6fad64c747040e6abcc6a57b99e5ba9293ee4d99 (patch)
treed43c999efa712e5171414c94d1d1a9effe044c0b
parent88eb5c07f567c30195d4940167cabc50bf2c1e34 (diff)
downloadframeworks_base-6fad64c747040e6abcc6a57b99e5ba9293ee4d99.zip
frameworks_base-6fad64c747040e6abcc6a57b99e5ba9293ee4d99.tar.gz
frameworks_base-6fad64c747040e6abcc6a57b99e5ba9293ee4d99.tar.bz2
Report errors when eglCreateImageKHR fails
Change-Id: Ica39b72ac2505675e619ef4994bd67b98bf6e7da
-rw-r--r--libs/gui/SurfaceTexture.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/libs/gui/SurfaceTexture.cpp b/libs/gui/SurfaceTexture.cpp
index 39418f0..15a176e 100644
--- a/libs/gui/SurfaceTexture.cpp
+++ b/libs/gui/SurfaceTexture.cpp
@@ -274,10 +274,14 @@ status_t SurfaceTexture::updateTexImage() {
EGLImageKHR image = mSlots[mLastQueued].mEglImage;
if (image == EGL_NO_IMAGE_KHR) {
EGLDisplay dpy = eglGetCurrentDisplay();
- sp<GraphicBuffer> graphicBuffer = mSlots[mLastQueued].mGraphicBuffer;
- image = createImage(dpy, graphicBuffer);
+ image = createImage(dpy, mSlots[mLastQueued].mGraphicBuffer);
mSlots[mLastQueued].mEglImage = image;
mSlots[mLastQueued].mEglDisplay = dpy;
+ if (image == EGL_NO_IMAGE_KHR) {
+ // NOTE: if dpy was invalid, createImage() is guaranteed to
+ // fail. so we'd end up here.
+ return -EINVAL;
+ }
}
GLint error;
@@ -483,12 +487,9 @@ EGLImageKHR SurfaceTexture::createImage(EGLDisplay dpy,
};
EGLImageKHR image = eglCreateImageKHR(dpy, EGL_NO_CONTEXT,
EGL_NATIVE_BUFFER_ANDROID, cbuf, attrs);
- EGLint error = eglGetError();
- if (error != EGL_SUCCESS) {
+ if (image == EGL_NO_IMAGE_KHR) {
+ EGLint error = eglGetError();
LOGE("error creating EGLImage: %#x", error);
- } else if (image == EGL_NO_IMAGE_KHR) {
- LOGE("no error reported, but no image was returned by "
- "eglCreateImageKHR");
}
return image;
}