diff options
author | Rob Herring <[email protected]> | 2016-04-28 15:37:29 -0500 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2016-05-01 12:31:28 +0100 |
commit | dfaccf25f577987737568a8e1b21ba3a68ef2d80 (patch) | |
tree | 7afa0b07bb9865cb4daf1d86c57efcf77d1a4af4 | |
parent | d45884ef054eea539d4bf0018a99ed29e69d59c9 (diff) |
egl: android: factor out format conversion code to a function
Signed-off-by: Rob Herring <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
-rw-r--r-- | src/egl/drivers/dri2/platform_android.c | 39 |
1 files changed, 15 insertions, 24 deletions
diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c index 02122e3d583..dd62eda812d 100644 --- a/src/egl/drivers/dri2/platform_android.c +++ b/src/egl/drivers/dri2/platform_android.c @@ -65,6 +65,20 @@ get_format_bpp(int native) return bpp; } +static int get_format(int format) +{ + switch (format) { + case HAL_PIXEL_FORMAT_BGRA_8888: return __DRI_IMAGE_FORMAT_ARGB8888; + case HAL_PIXEL_FORMAT_RGB_565: return __DRI_IMAGE_FORMAT_RGB565; + case HAL_PIXEL_FORMAT_RGBA_8888: return __DRI_IMAGE_FORMAT_ABGR8888; + case HAL_PIXEL_FORMAT_RGBX_8888: return __DRI_IMAGE_FORMAT_XBGR8888; + case HAL_PIXEL_FORMAT_RGB_888: + /* unsupported */ + default: + _eglLog(_EGL_WARNING, "unsupported native buffer format 0x%x", format); + } + return -1; +} static int get_native_buffer_name(struct ANativeWindowBuffer *buf) { @@ -332,7 +346,6 @@ dri2_create_image_android_native_buffer(_EGLDisplay *disp, _EGLContext *ctx, struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); struct dri2_egl_image *dri2_img; int name; - EGLint format; if (ctx != NULL) { /* From the EGL_ANDROID_image_native_buffer spec: @@ -358,28 +371,6 @@ dri2_create_image_android_native_buffer(_EGLDisplay *disp, _EGLContext *ctx, return NULL; } - /* see the table in droid_add_configs_for_visuals */ - switch (buf->format) { - case HAL_PIXEL_FORMAT_BGRA_8888: - format = __DRI_IMAGE_FORMAT_ARGB8888; - break; - case HAL_PIXEL_FORMAT_RGB_565: - format = __DRI_IMAGE_FORMAT_RGB565; - break; - case HAL_PIXEL_FORMAT_RGBA_8888: - format = __DRI_IMAGE_FORMAT_ABGR8888; - break; - case HAL_PIXEL_FORMAT_RGBX_8888: - format = __DRI_IMAGE_FORMAT_XBGR8888; - break; - case HAL_PIXEL_FORMAT_RGB_888: - /* unsupported */ - default: - _eglLog(_EGL_WARNING, "unsupported native buffer format 0x%x", buf->format); - return NULL; - break; - } - dri2_img = calloc(1, sizeof(*dri2_img)); if (!dri2_img) { _eglError(EGL_BAD_ALLOC, "droid_create_image_mesa_drm"); @@ -395,7 +386,7 @@ dri2_create_image_android_native_buffer(_EGLDisplay *disp, _EGLContext *ctx, dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen, buf->width, buf->height, - format, + get_format(buf->format), name, buf->stride, dri2_img); |