Commit 87ed956f authored by Amirhossein Simjour's avatar Amirhossein Simjour Committed by Commit Bot

VR: Fix popups in VR on Android P

The issues only appear on Android P and using software Canvas
instead of HardwareCanvas resolves the problem. It looks that
HardwareCanvas get locked and doesn't refresh.

Bug: 876492, 859913
Change-Id: I821278cab6029ea66e3dcd77f5c9514bd58ec53a
Reviewed-on: https://chromium-review.googlesource.com/1187362
Commit-Queue: Amirhossein Simjour <asimjour@chromium.org>
Reviewed-by: default avatarMichael Thiessen <mthiesse@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585827}
parent 754f801e
......@@ -16,7 +16,6 @@ import android.view.View;
import android.view.ViewTreeObserver.OnPreDrawListener;
import android.widget.FrameLayout;
import org.chromium.base.BuildInfo;
import org.chromium.base.TraceEvent;
/**
......@@ -70,14 +69,10 @@ public class VrViewContainer extends FrameLayout {
// linter from complaining about lockHardwareCanvas. This won't be reached pre-N
// anyways.
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) return;
Canvas surfaceCanvas = null;
if (BuildInfo.isAtLeastP()) {
// This seems to have stopped crashing with Android P. It's >10x faster than the
// software canvas rendering for Android UI.
surfaceCanvas = mSurface.lockHardwareCanvas();
} else {
surfaceCanvas = mSurface.lockCanvas(null);
}
// This should be replaced with using HardwareCanvas once HardwareCanvas is more
// stable. HardwareCanvas can be >10x faster than the software canvas rendering
// for Android UI.
Canvas surfaceCanvas = mSurface.lockCanvas(null);
surfaceCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
drawSuper(surfaceCanvas);
mSurface.unlockCanvasAndPost(surfaceCanvas);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment