diff options
| author | 2019-06-19 16:07:02 -0700 | |
|---|---|---|
| committer | 2019-06-19 16:07:02 -0700 | |
| commit | 25627537838c32a9af3415fd4254b5811d14b9d5 (patch) | |
| tree | 1258c74e68831bb30cef6639343f40e6c1ab0874 | |
| parent | 81880d5638063397ae3122648455a0f5fd33a530 (diff) | |
| parent | 2f8cae24b944dce2f7729cea213f07af5fb9ee9b (diff) | |
Merge "Revert SurfaceView back to Q's version" into qt-r1-dev
am: 2f8cae24b9
Change-Id: Iedb5910e225fd2584b6b4342dc7aed9b93747eb0
| -rw-r--r-- | core/java/android/view/SurfaceView.java | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index add7376b8531..254d04e8715d 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -27,7 +27,6 @@ import android.content.res.Configuration; import android.graphics.BlendMode; import android.graphics.Canvas; import android.graphics.Color; -import android.graphics.HardwareRenderer; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.PorterDuff; @@ -202,29 +201,6 @@ public class SurfaceView extends View implements ViewRootImpl.WindowStoppedCallb private SurfaceControl.Transaction mRtTransaction = new SurfaceControl.Transaction(); - /** - * A callback which reflects an alpha value of this view onto the underlying surfaces. - * - * <p class="note"><strong>Note:</strong> This doesn't have to be defined as a member variable, - * but can be defined as an inline lambda when calling ViewRootImpl#registerRtFrameCallback(). - * However when we do so, the callback is triggered only for a few times and stops working for - * some reason. It's suspected that there is a problem around garbage collection, and until - * the cause is fixed, we will keep this callback in a member variable.</p> - */ - private HardwareRenderer.FrameDrawingCallback mSetSurfaceAlphaCallback = frame -> { - final ViewRootImpl viewRoot = getViewRootImpl(); - if (viewRoot == null || viewRoot.mSurface == null || !viewRoot.mSurface.isValid()) { - // In this case, the alpha value is reflected on the screen in #updateSurface() later. - return; - } - - final SurfaceControl.Transaction t = new SurfaceControl.Transaction(); - t.setAlpha(mSurfaceControl, getAlpha()); - t.deferTransactionUntilSurface(mSurfaceControl, viewRoot.mSurface, frame); - t.setEarlyWakeup(); - t.apply(); - }; - public SurfaceView(Context context) { this(context, null); } @@ -312,17 +288,6 @@ public class SurfaceView extends View implements ViewRootImpl.WindowStoppedCallb updateSurface(); } - @Override - public void setAlpha(float alpha) { - super.setAlpha(alpha); - final ViewRootImpl viewRoot = getViewRootImpl(); - if (viewRoot == null) { - return; - } - viewRoot.registerRtFrameCallback(mSetSurfaceAlphaCallback); - invalidate(); - } - private void performDrawFinished() { if (mPendingReportDraws > 0) { mDrawFinished = true; @@ -682,13 +647,6 @@ public class SurfaceView extends View implements ViewRootImpl.WindowStoppedCallb } updateBackgroundVisibilityInTransaction(viewRoot.getSurfaceControl()); - // Alpha value change is handled in setAlpha() directly using a local - // transaction. However it can happen that setAlpha() is called while - // local transactions cannot be applied, so the value is stored in a View - // but not yet reflected on the Surface. - mSurfaceControl.setAlpha(getAlpha()); - mBackgroundControl.setAlpha(getAlpha()); - // While creating the surface, we will set it's initial // geometry. Outside of that though, we should generally // leave it to the RenderThread. |