hwc: Add support for RGBA_4444 and RGBA_5551 formats
1. Modify gralloc library to allocate buffers for RGBA_4444 and RGBA_5551 formats 2. Modify copybit library to add composition support for RGBA_4444 and RGBA_5551 layers 3. Modify hwc library to add MDP composition and rotator support for RGBA_4444 and RGBA_5551 layers. Change-Id: I30dbc4e5e2c010835fa7e7663f996f67779a1803
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user