Loading core/java/android/view/SurfaceControl.java +1 −0 Original line number Diff line number Diff line Loading @@ -2551,6 +2551,7 @@ public final class SurfaceControl implements Parcelable { /** * @hide */ @Deprecated @UnsupportedAppUsage public Transaction deferTransactionUntilSurface(SurfaceControl sc, Surface barrierSurface, long frameNumber) { Loading core/java/android/view/SurfaceView.java +5 −4 Original line number Diff line number Diff line Loading @@ -414,7 +414,8 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall } t.setAlpha(mSurfaceControl, alpha); if (!useBLAST) { t.deferTransactionUntilSurface(mSurfaceControl, parent, frame); t.deferTransactionUntil(mSurfaceControl, viewRoot.getRenderSurfaceControl(), frame); } } // It's possible that mSurfaceControl is released in the UI thread before Loading Loading @@ -1122,7 +1123,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall if (frameNumber > 0 && !WindowManagerGlobal.USE_BLAST_ADAPTER) { final ViewRootImpl viewRoot = getViewRootImpl(); t.deferTransactionUntilSurface(surface, viewRoot.mSurface, t.deferTransactionUntil(surface, viewRoot.getRenderSurfaceControl(), frameNumber); } Loading Loading @@ -1217,8 +1218,8 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall if (frameNumber > 0 && viewRoot != null && !useBLAST) { if (viewRoot.mSurface.isValid()) { mRtTransaction.deferTransactionUntilSurface(mSurfaceControl, viewRoot.mSurface, frameNumber); mRtTransaction.deferTransactionUntil(mSurfaceControl, viewRoot.getRenderSurfaceControl(), frameNumber); } } t.hide(mSurfaceControl); Loading core/java/android/view/SyncRtSurfaceTransactionApplier.java +4 −4 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ public class SyncRtSurfaceTransactionApplier { public static final int FLAG_CORNER_RADIUS = 1 << 4; public static final int FLAG_VISIBILITY = 1 << 5; private final Surface mTargetSurface; private SurfaceControl mTargetSc; private final ViewRootImpl mTargetViewRootImpl; private final float[] mTmpFloat9 = new float[9]; Loading @@ -47,7 +47,6 @@ public class SyncRtSurfaceTransactionApplier { */ public SyncRtSurfaceTransactionApplier(View targetView) { mTargetViewRootImpl = targetView != null ? targetView.getViewRootImpl() : null; mTargetSurface = mTargetViewRootImpl != null ? mTargetViewRootImpl.mSurface : null; } /** Loading @@ -60,15 +59,16 @@ public class SyncRtSurfaceTransactionApplier { if (mTargetViewRootImpl == null) { return; } mTargetSc = mTargetViewRootImpl.getRenderSurfaceControl(); mTargetViewRootImpl.registerRtFrameCallback(frame -> { if (mTargetSurface == null || !mTargetSurface.isValid()) { if (mTargetSc == null || !mTargetSc.isValid()) { return; } Transaction t = new Transaction(); for (int i = params.length - 1; i >= 0; i--) { SurfaceParams surfaceParams = params[i]; SurfaceControl surface = surfaceParams.surface; t.deferTransactionUntilSurface(surface, mTargetSurface, frame); t.deferTransactionUntil(surface, mTargetSc, frame); applyParams(t, surfaceParams, mTmpFloat9); } t.setEarlyWakeup(); Loading core/java/android/view/ViewRootImpl.java +10 −2 Original line number Diff line number Diff line Loading @@ -1733,8 +1733,8 @@ public final class ViewRootImpl implements ViewParent, private void updateBoundsLayer() { if (mBoundsLayer != null) { setBoundsLayerCrop(); mTransaction.deferTransactionUntilSurface(mBoundsLayer, mSurface, mSurface.getNextFrameNumber()) mTransaction.deferTransactionUntil(mBoundsLayer, getRenderSurfaceControl(), mSurface.getNextFrameNumber()) .apply(); } } Loading Loading @@ -9539,4 +9539,12 @@ public final class ViewRootImpl implements ViewParent, SurfaceControl.Transaction getBLASTSyncTransaction() { return mRtBLASTSyncTransaction; } SurfaceControl getRenderSurfaceControl() { if (WindowManagerGlobal.USE_BLAST_ADAPTER) { return mBlastSurfaceControl; } else { return mSurfaceControl; } } } Loading
core/java/android/view/SurfaceControl.java +1 −0 Original line number Diff line number Diff line Loading @@ -2551,6 +2551,7 @@ public final class SurfaceControl implements Parcelable { /** * @hide */ @Deprecated @UnsupportedAppUsage public Transaction deferTransactionUntilSurface(SurfaceControl sc, Surface barrierSurface, long frameNumber) { Loading
core/java/android/view/SurfaceView.java +5 −4 Original line number Diff line number Diff line Loading @@ -414,7 +414,8 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall } t.setAlpha(mSurfaceControl, alpha); if (!useBLAST) { t.deferTransactionUntilSurface(mSurfaceControl, parent, frame); t.deferTransactionUntil(mSurfaceControl, viewRoot.getRenderSurfaceControl(), frame); } } // It's possible that mSurfaceControl is released in the UI thread before Loading Loading @@ -1122,7 +1123,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall if (frameNumber > 0 && !WindowManagerGlobal.USE_BLAST_ADAPTER) { final ViewRootImpl viewRoot = getViewRootImpl(); t.deferTransactionUntilSurface(surface, viewRoot.mSurface, t.deferTransactionUntil(surface, viewRoot.getRenderSurfaceControl(), frameNumber); } Loading Loading @@ -1217,8 +1218,8 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall if (frameNumber > 0 && viewRoot != null && !useBLAST) { if (viewRoot.mSurface.isValid()) { mRtTransaction.deferTransactionUntilSurface(mSurfaceControl, viewRoot.mSurface, frameNumber); mRtTransaction.deferTransactionUntil(mSurfaceControl, viewRoot.getRenderSurfaceControl(), frameNumber); } } t.hide(mSurfaceControl); Loading
core/java/android/view/SyncRtSurfaceTransactionApplier.java +4 −4 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ public class SyncRtSurfaceTransactionApplier { public static final int FLAG_CORNER_RADIUS = 1 << 4; public static final int FLAG_VISIBILITY = 1 << 5; private final Surface mTargetSurface; private SurfaceControl mTargetSc; private final ViewRootImpl mTargetViewRootImpl; private final float[] mTmpFloat9 = new float[9]; Loading @@ -47,7 +47,6 @@ public class SyncRtSurfaceTransactionApplier { */ public SyncRtSurfaceTransactionApplier(View targetView) { mTargetViewRootImpl = targetView != null ? targetView.getViewRootImpl() : null; mTargetSurface = mTargetViewRootImpl != null ? mTargetViewRootImpl.mSurface : null; } /** Loading @@ -60,15 +59,16 @@ public class SyncRtSurfaceTransactionApplier { if (mTargetViewRootImpl == null) { return; } mTargetSc = mTargetViewRootImpl.getRenderSurfaceControl(); mTargetViewRootImpl.registerRtFrameCallback(frame -> { if (mTargetSurface == null || !mTargetSurface.isValid()) { if (mTargetSc == null || !mTargetSc.isValid()) { return; } Transaction t = new Transaction(); for (int i = params.length - 1; i >= 0; i--) { SurfaceParams surfaceParams = params[i]; SurfaceControl surface = surfaceParams.surface; t.deferTransactionUntilSurface(surface, mTargetSurface, frame); t.deferTransactionUntil(surface, mTargetSc, frame); applyParams(t, surfaceParams, mTmpFloat9); } t.setEarlyWakeup(); Loading
core/java/android/view/ViewRootImpl.java +10 −2 Original line number Diff line number Diff line Loading @@ -1733,8 +1733,8 @@ public final class ViewRootImpl implements ViewParent, private void updateBoundsLayer() { if (mBoundsLayer != null) { setBoundsLayerCrop(); mTransaction.deferTransactionUntilSurface(mBoundsLayer, mSurface, mSurface.getNextFrameNumber()) mTransaction.deferTransactionUntil(mBoundsLayer, getRenderSurfaceControl(), mSurface.getNextFrameNumber()) .apply(); } } Loading Loading @@ -9539,4 +9539,12 @@ public final class ViewRootImpl implements ViewParent, SurfaceControl.Transaction getBLASTSyncTransaction() { return mRtBLASTSyncTransaction; } SurfaceControl getRenderSurfaceControl() { if (WindowManagerGlobal.USE_BLAST_ADAPTER) { return mBlastSurfaceControl; } else { return mSurfaceControl; } } }