Add EffectLayer visibility to Winscope
Bug: 151091744 Test: open pip and splitscreen trace in winscope check to see colors and shadows are marked as visible Change-Id: I1083df1c85c85beb9ad93e39a136a61a4359ca62
This commit is contained in:
@@ -147,6 +147,25 @@ function transform_layer(layer, {parentBounds, parentHidden}) {
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fills_color(layer) {
|
||||||
|
return layer.color && layer.color.a > 0 &&
|
||||||
|
layer.color.r >= 0 && layer.color.g >= 0 &&
|
||||||
|
layer.color.b >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function draws_shadows(layer) {
|
||||||
|
return layer.shadowRadius && layer.shadowRadius > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function has_effects(layer) {
|
||||||
|
// Support previous color layer
|
||||||
|
if (layer.type === 'ColorLayer') return true;
|
||||||
|
|
||||||
|
// Support newer effect layer
|
||||||
|
return layer.type === 'EffectLayer' &&
|
||||||
|
(fills_color(layer) || draws_shadows(layer))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the layer is visible on screen according to its type,
|
* Checks if the layer is visible on screen according to its type,
|
||||||
* active buffer content, alpha and visible regions.
|
* active buffer content, alpha and visible regions.
|
||||||
@@ -155,7 +174,7 @@ function transform_layer(layer, {parentBounds, parentHidden}) {
|
|||||||
* @returns if the layer is visible on screen or not
|
* @returns if the layer is visible on screen or not
|
||||||
*/
|
*/
|
||||||
function is_visible(layer) {
|
function is_visible(layer) {
|
||||||
var visible = (layer.activeBuffer || layer.type === 'ColorLayer')
|
var visible = (layer.activeBuffer || has_effects(layer))
|
||||||
&& !hidden && is_opaque(layer);
|
&& !hidden && is_opaque(layer);
|
||||||
visible &= !is_empty(layer.visibleRegion);
|
visible &= !is_empty(layer.visibleRegion);
|
||||||
return visible;
|
return visible;
|
||||||
|
|||||||
Reference in New Issue
Block a user