From: Zhigang Gong <zhigang.g...@linux.intel.com> Added two color formats RGB565 and A8 to gbm layer. Add A8 to dri layer.
Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> --- include/GL/internal/dri_interface.h | 1 + src/gbm/backends/dri/gbm_dri.c | 6 ++++++ src/gbm/main/gbm.h | 2 ++ src/mesa/drivers/dri/intel/intel_screen.c | 5 +++++ 4 files changed, 14 insertions(+), 0 deletions(-) diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index 4f768f0..40034e2 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -840,6 +840,7 @@ struct __DRIdri2ExtensionRec { #define __DRI_IMAGE_FORMAT_XRGB8888 0x1002 #define __DRI_IMAGE_FORMAT_ARGB8888 0x1003 #define __DRI_IMAGE_FORMAT_ABGR8888 0x1004 +#define __DRI_IMAGE_FORMAT_A8 0x1005 #define __DRI_IMAGE_USE_SHARE 0x0001 #define __DRI_IMAGE_USE_SCANOUT 0x0002 diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c index d78cf5f..206ddb4 100644 --- a/src/gbm/backends/dri/gbm_dri.c +++ b/src/gbm/backends/dri/gbm_dri.c @@ -294,6 +294,12 @@ gbm_dri_match_format(enum gbm_bo_format format, int *dri_format) case GBM_BO_FORMAT_ARGB8888: *dri_format = __DRI_IMAGE_FORMAT_ARGB8888; break; + case GBM_BO_FORMAT_RGB565: + *dri_format = __DRI_IMAGE_FORMAT_RGB565; + break; + case GBM_BO_FORMAT_A8: + *dri_format = __DRI_IMAGE_FORMAT_A8; + break; default: return -1; } diff --git a/src/gbm/main/gbm.h b/src/gbm/main/gbm.h index aeed0df..889efa2 100644 --- a/src/gbm/main/gbm.h +++ b/src/gbm/main/gbm.h @@ -51,6 +51,8 @@ union gbm_bo_handle { enum gbm_bo_format { GBM_BO_FORMAT_XRGB8888, GBM_BO_FORMAT_ARGB8888, + GBM_BO_FORMAT_RGB565, + GBM_BO_FORMAT_A8 }; enum gbm_bo_flags { diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c index e4cc5b0..6284071 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -143,6 +143,11 @@ intel_create_image_from_name(__DRIscreen *screen, return NULL; switch (format) { + case __DRI_IMAGE_FORMAT_A8: + image->format = MESA_FORMAT_A8; + image->internal_format = GL_ALPHA; + image->data_type = GL_UNSIGNED_BYTE; + break; case __DRI_IMAGE_FORMAT_RGB565: image->format = MESA_FORMAT_RGB565; image->internal_format = GL_RGB; -- 1.7.4.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev