Support shadows and reordering in ViewOverlay

Bug: 32726440
Test: manual
Change-Id: Ic5d7efdee5a493b7768b9db8150f65f97b3f0a64
This commit is contained in:
Chris Craik
2017-01-12 19:17:19 -08:00
parent f36beac956
commit 36d9a6dfba

View File

@@ -238,7 +238,19 @@ public class ViewOverlay {
@Override
protected void dispatchDraw(Canvas canvas) {
/*
* The OverlayViewGroup doesn't draw with a DisplayList, because
* draw(Canvas, View, long) is never called on it. This is fine, since it doesn't need
* RenderNode/DisplayList features, and can just draw into the owner's Canvas.
*
* This means that we need to insert reorder barriers manually though, so that children
* of the OverlayViewGroup can cast shadows and Z reorder with each other.
*/
canvas.insertReorderBarrier();
super.dispatchDraw(canvas);
canvas.insertInorderBarrier();
final int numDrawables = (mDrawables == null) ? 0 : mDrawables.size();
for (int i = 0; i < numDrawables; ++i) {
mDrawables.get(i).draw(canvas);