Merge "ViewRootImpl: Use mergeWithNextTransaction for updating bounds layer" into sc-dev

This commit is contained in:
Rob Carr
2021-02-11 01:24:45 +00:00
committed by Android (Google) Code Review

View File

@@ -1913,25 +1913,18 @@ public final class ViewRootImpl implements ViewParent,
private boolean updateBoundsLayer(SurfaceControl.Transaction t) {
if (mBoundsLayer != null) {
setBoundsLayerCrop(t);
t.deferTransactionUntil(mBoundsLayer, getSurfaceControl(),
mSurface.getNextFrameNumber());
return true;
}
return false;
}
private void prepareSurfaces(boolean sizeChanged) {
private void prepareSurfaces() {
final SurfaceControl.Transaction t = mTransaction;
final SurfaceControl sc = getSurfaceControl();
if (!sc.isValid()) return;
boolean applyTransaction = updateBoundsLayer(t);
if (sizeChanged) {
applyTransaction = true;
t.setBufferSize(sc, mSurfaceSize.x, mSurfaceSize.y);
}
if (applyTransaction) {
t.apply();
if (updateBoundsLayer(t)) {
mergeWithNextTransaction(t, mSurface.getNextFrameNumber());
}
}
@@ -3036,7 +3029,7 @@ public final class ViewRootImpl implements ViewParent,
// stopping, but on the client side it doesn't get stopped since it's restarted quick
// enough. WMS doesn't want to keep around old children since they will leak when the
// client creates new children.
prepareSurfaces(surfaceSizeChanged);
prepareSurfaces();
}
final boolean didLayout = layoutRequested && (!mStopped || mReportNextDraw);