From 8dccb26901973722164f2a11551fd6d5c52081bf Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Thu, 4 Feb 2010 17:04:53 -0800 Subject: Proper EGLImageKHR error handling Validate EGLImageKHR format and return an error for unsupported ones. Also make sure to return an error when binding EGL_NO_IMAGE_KHR to a texture --- opengl/libagl/egl.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'opengl/libagl/egl.cpp') diff --git a/opengl/libagl/egl.cpp b/opengl/libagl/egl.cpp index 81864bd791..b6e0aae74e 100644 --- a/opengl/libagl/egl.cpp +++ b/opengl/libagl/egl.cpp @@ -2092,7 +2092,20 @@ EGLImageKHR eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, if (native_buffer->common.version != sizeof(android_native_buffer_t)) return setError(EGL_BAD_PARAMETER, EGL_NO_IMAGE_KHR); - + + switch (native_buffer->format) { + case HAL_PIXEL_FORMAT_RGBA_8888: + case HAL_PIXEL_FORMAT_RGBX_8888: + case HAL_PIXEL_FORMAT_RGB_888: + case HAL_PIXEL_FORMAT_RGB_565: + case HAL_PIXEL_FORMAT_BGRA_8888: + case HAL_PIXEL_FORMAT_RGBA_5551: + case HAL_PIXEL_FORMAT_RGBA_4444: + break; + default: + return setError(EGL_BAD_PARAMETER, EGL_NO_IMAGE_KHR); + } + native_buffer->common.incRef(&native_buffer->common); return (EGLImageKHR)native_buffer; } -- cgit v1.2.3-59-g8ed1b