diff --git a/libcopybit/copybit.cpp b/libcopybit/copybit.cpp index bd9fc1aa..421f5316 100644 --- a/libcopybit/copybit.cpp +++ b/libcopybit/copybit.cpp @@ -126,6 +126,8 @@ static void intersect(struct copybit_rect_t *out, static int get_format(int format) { switch (format) { case HAL_PIXEL_FORMAT_RGB_565: return MDP_RGB_565; + case HAL_PIXEL_FORMAT_RGBA_5551: return MDP_RGBA_5551; + case HAL_PIXEL_FORMAT_RGBA_4444: return MDP_RGBA_4444; case HAL_PIXEL_FORMAT_RGBX_8888: return MDP_RGBX_8888; case HAL_PIXEL_FORMAT_BGRX_8888: return MDP_BGRX_8888; case HAL_PIXEL_FORMAT_RGB_888: return MDP_RGB_888; diff --git a/libhwcomposer/hwc_utils.cpp b/libhwcomposer/hwc_utils.cpp index 33579209..6a74625e 100644 --- a/libhwcomposer/hwc_utils.cpp +++ b/libhwcomposer/hwc_utils.cpp @@ -1154,6 +1154,8 @@ bool isRotatorSupportedFormat(private_handle_t *hnd) { if(hnd != NULL) { switch(hnd->format) { case HAL_PIXEL_FORMAT_RGBA_8888: + case HAL_PIXEL_FORMAT_RGBA_5551: + case HAL_PIXEL_FORMAT_RGBA_4444: case HAL_PIXEL_FORMAT_RGB_565: case HAL_PIXEL_FORMAT_RGB_888: case HAL_PIXEL_FORMAT_BGRA_8888: diff --git a/liboverlay/overlayUtils.cpp b/liboverlay/overlayUtils.cpp index cbd52aed..32b20137 100644 --- a/liboverlay/overlayUtils.cpp +++ b/liboverlay/overlayUtils.cpp @@ -93,6 +93,10 @@ int getMdpFormat(int format) { return MDP_RGB_888; case HAL_PIXEL_FORMAT_RGB_565: return MDP_RGB_565; + case HAL_PIXEL_FORMAT_RGBA_5551: + return MDP_RGBA_5551; + case HAL_PIXEL_FORMAT_RGBA_4444: + return MDP_RGBA_4444; case HAL_PIXEL_FORMAT_BGRA_8888: return MDP_BGRA_8888; case HAL_PIXEL_FORMAT_BGRX_8888: @@ -126,9 +130,6 @@ int getMdpFormat(int format) { return MDP_Y_CBCR_H2V2_VENUS; default: //Unsupported by MDP - //---graphics.h-------- - //HAL_PIXEL_FORMAT_RGBA_5551 - //HAL_PIXEL_FORMAT_RGBA_4444 //---gralloc_priv.h----- //HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO = 0x7FA30C01 //HAL_PIXEL_FORMAT_R_8 = 0x10D @@ -180,6 +181,10 @@ int getHALFormat(int mdpFormat) { return HAL_PIXEL_FORMAT_RGB_888; case MDP_RGB_565: return HAL_PIXEL_FORMAT_RGB_565; + case MDP_RGBA_5551: + return HAL_PIXEL_FORMAT_RGBA_5551; + case MDP_RGBA_4444: + return HAL_PIXEL_FORMAT_RGBA_4444; case MDP_BGRA_8888: return HAL_PIXEL_FORMAT_BGRA_8888; case MDP_Y_CR_CB_GH2V2: diff --git a/liboverlay/overlayUtils.h b/liboverlay/overlayUtils.h index 2b8e3030..ff6d4ef2 100644 --- a/liboverlay/overlayUtils.h +++ b/liboverlay/overlayUtils.h @@ -432,6 +432,8 @@ inline bool isRgb(uint32_t format) { case MDP_BGRA_8888: case MDP_RGBX_8888: case MDP_RGB_565: + case MDP_RGBA_4444: + case MDP_RGBA_5551: return true; default: return false; @@ -443,6 +445,8 @@ inline const char* getFormatString(int format){ #define STR(f) #f; static const char* formats[MDP_IMGTYPE_LIMIT + 1] = {0}; formats[MDP_RGB_565] = STR(MDP_RGB_565); + formats[MDP_RGBA_5551] = STR(MDP_RGBA_5551); + formats[MDP_RGBA_4444] = STR(MDP_RGBA_4444); formats[MDP_XRGB_8888] = STR(MDP_XRGB_8888); formats[MDP_Y_CBCR_H2V2] = STR(MDP_Y_CBCR_H2V2); formats[MDP_Y_CBCR_H2V2_ADRENO] = STR(MDP_Y_CBCR_H2V2_ADRENO);