hwc: Color layer always has zero transform.
Color layer always has zero transform because framework uses the transform member of hwc layer to pass the color value to HAL. Change-Id: I79fe204c558d1b6e1dd69ba635ba0bd87140b1b1
This commit is contained in:
@@ -177,7 +177,7 @@ bool CopyBit::prepare(hwc_context_t *ctx, hwc_display_contents_1_t *list,
|
|||||||
return true;
|
return true;
|
||||||
hwc_rect_t sourceCrop = integerizeSourceCrop(layer->sourceCropf);
|
hwc_rect_t sourceCrop = integerizeSourceCrop(layer->sourceCropf);
|
||||||
|
|
||||||
if (layer->transform & HAL_TRANSFORM_ROT_90) {
|
if (has90Transform(layer)) {
|
||||||
src_h = sourceCrop.right - sourceCrop.left;
|
src_h = sourceCrop.right - sourceCrop.left;
|
||||||
src_w = sourceCrop.bottom - sourceCrop.top;
|
src_w = sourceCrop.bottom - sourceCrop.top;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -603,9 +603,10 @@ bool MDPComp::tryFullFrame(hwc_context_t *ctx,
|
|||||||
|
|
||||||
//For 8x26 with panel width>1k, if RGB layer needs HFLIP fail mdp comp
|
//For 8x26 with panel width>1k, if RGB layer needs HFLIP fail mdp comp
|
||||||
// may not need it if Gfx pre-rotation can handle all flips & rotations
|
// may not need it if Gfx pre-rotation can handle all flips & rotations
|
||||||
|
int transform = (layer->flags & HWC_COLOR_FILL) ? 0 : layer->transform;
|
||||||
if(qdutils::MDPVersion::getInstance().is8x26() &&
|
if(qdutils::MDPVersion::getInstance().is8x26() &&
|
||||||
(ctx->dpyAttr[mDpy].xres > 1024) &&
|
(ctx->dpyAttr[mDpy].xres > 1024) &&
|
||||||
(layer->transform & HWC_TRANSFORM_FLIP_H) &&
|
(transform & HWC_TRANSFORM_FLIP_H) &&
|
||||||
(!isYuvBuffer(hnd)))
|
(!isYuvBuffer(hnd)))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -751,8 +751,10 @@ static void trimList(hwc_context_t *ctx, hwc_display_contents_1_t *list,
|
|||||||
for(uint32_t i = 0; i < list->numHwLayers - 1; i++) {
|
for(uint32_t i = 0; i < list->numHwLayers - 1; i++) {
|
||||||
hwc_layer_1_t *layer = &list->hwLayers[i];
|
hwc_layer_1_t *layer = &list->hwLayers[i];
|
||||||
hwc_rect_t crop = integerizeSourceCrop(layer->sourceCropf);
|
hwc_rect_t crop = integerizeSourceCrop(layer->sourceCropf);
|
||||||
|
int transform = (list->hwLayers[i].flags & HWC_COLOR_FILL) ? 0 :
|
||||||
|
list->hwLayers[i].transform;
|
||||||
trimLayer(ctx, dpy,
|
trimLayer(ctx, dpy,
|
||||||
list->hwLayers[i].transform,
|
transform,
|
||||||
(hwc_rect_t&)crop,
|
(hwc_rect_t&)crop,
|
||||||
(hwc_rect_t&)list->hwLayers[i].displayFrame);
|
(hwc_rect_t&)list->hwLayers[i].displayFrame);
|
||||||
layer->sourceCropf.left = crop.left;
|
layer->sourceCropf.left = crop.left;
|
||||||
@@ -1145,7 +1147,8 @@ void optimizeLayerRects(const hwc_display_contents_1_t *list) {
|
|||||||
hwc_rect_t& bottomframe = layer->displayFrame;
|
hwc_rect_t& bottomframe = layer->displayFrame;
|
||||||
hwc_rect_t bottomCrop =
|
hwc_rect_t bottomCrop =
|
||||||
integerizeSourceCrop(layer->sourceCropf);
|
integerizeSourceCrop(layer->sourceCropf);
|
||||||
int transform =layer->transform;
|
int transform = (layer->flags & HWC_COLOR_FILL) ? 0 :
|
||||||
|
layer->transform;
|
||||||
|
|
||||||
hwc_rect_t irect = getIntersection(bottomframe, topframe);
|
hwc_rect_t irect = getIntersection(bottomframe, topframe);
|
||||||
if(isValidRect(irect)) {
|
if(isValidRect(irect)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user