Added visibility check for missing relativeOf
When the layer has the flag isRelativeOf but the relativeOf is -1, that means the relativeOf layer has been removed. This would prevent the layer from showing up on screen, but still be in memory. Added this reason to list of reasons why layer wouldn't be visible. Also added fix for BufferLayer check to instead check for BufferQueueLayer and BufferStateLayer. Test: winscope shows "RelativeOf layer has been removed" Change-Id: Id1d59bd71a5aac7a011204ba345d694f67c28a29
This commit is contained in:
@@ -209,10 +209,8 @@ function transform_layer(layer, {parentBounds, parentHidden}) {
|
||||
if (is_transform_invalid(layer.transform)) {
|
||||
reasons.push('Transform is invalid');
|
||||
}
|
||||
var isBufferLayer = (layer.type === 'BufferStateLayer' || layer.type === 'BufferQueueLayer');
|
||||
if (isBufferLayer && is_transform_invalid(layer.bufferTransform)
|
||||
&& layer.activeBuffer) {
|
||||
reasons.push('BufferTransform is invalid')
|
||||
if (layer.isRelativeOf && layer.zOrderRelativeOf == -1) {
|
||||
reasons.push('RelativeOf layer has been removed');
|
||||
}
|
||||
return reasons.join();
|
||||
}
|
||||
@@ -220,12 +218,13 @@ function transform_layer(layer, {parentBounds, parentHidden}) {
|
||||
layer.invisibleDueTo = 'Hidden by parent with ID: ' + parentHidden;
|
||||
} else {
|
||||
let reasons_hidden = visibilityReason(layer);
|
||||
let isBufferLayer = (layer.type === 'BufferStateLayer' || layer.type === 'BufferQueueLayer');
|
||||
if (reasons_hidden) {
|
||||
layer.invisibleDueTo = reasons_hidden;
|
||||
parentHidden = layer.id
|
||||
} else if (layer.type === 'ContainerLayer') {
|
||||
layer.invisibleDueTo = 'This is a ContainerLayer.';
|
||||
} else if (layer.type === 'BufferLayer' && (!layer.activeBuffer ||
|
||||
} else if (isBufferLayer && (!layer.activeBuffer ||
|
||||
layer.activeBuffer.height === 0 || layer.activeBuffer.width === 0)) {
|
||||
layer.invisibleDueTo = 'The buffer is empty.';
|
||||
} else if (!visible) {
|
||||
|
||||
Reference in New Issue
Block a user