Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/ScreenshotUtils.java +3 −2 Original line number Diff line number Diff line Loading @@ -32,11 +32,12 @@ public class ScreenshotUtils { * @param t the transaction used to set changes on the resulting screenshot. * @param sc the SurfaceControl to take a screenshot of * @param crop the crop to use when capturing the screenshot * @param layer the layer to place the screenshot * * @return A SurfaceControl where the screenshot will be attached, or null if failed. */ public static SurfaceControl takeScreenshot(SurfaceControl.Transaction t, SurfaceControl sc, Rect crop) { Rect crop, int layer) { final SurfaceControl.ScreenshotHardwareBuffer buffer = SurfaceControl.captureLayers( new SurfaceControl.LayerCaptureArgs.Builder(sc) .setSourceCrop(crop) Loading @@ -60,7 +61,7 @@ public class ScreenshotUtils { t.setBuffer(screenshot, graphicBuffer); t.setColorSpace(screenshot, buffer.getColorSpace()); t.reparent(screenshot, sc); t.setLayer(screenshot, Integer.MAX_VALUE); t.setLayer(screenshot, layer); t.show(screenshot); t.apply(); return screenshot; Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java +4 −1 Original line number Diff line number Diff line Loading @@ -1159,8 +1159,11 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, preResizeBounds.offsetTo(0, 0); final Rect snapshotDest = new Rect(0, 0, destinationBounds.width(), destinationBounds.height()); // Note: Put this at layer=MAX_VALUE-2 since the input consumer for PIP is placed at // MAX_VALUE-1 final SurfaceControl snapshotSurface = ScreenshotUtils.takeScreenshot( mSurfaceControlTransactionFactory.getTransaction(), mLeash, preResizeBounds); mSurfaceControlTransactionFactory.getTransaction(), mLeash, preResizeBounds, Integer.MAX_VALUE - 2); if (snapshotSurface != null) { mSyncTransactionQueue.queue(wct); mSyncTransactionQueue.runInSync(t -> { Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/ScreenshotUtils.java +3 −2 Original line number Diff line number Diff line Loading @@ -32,11 +32,12 @@ public class ScreenshotUtils { * @param t the transaction used to set changes on the resulting screenshot. * @param sc the SurfaceControl to take a screenshot of * @param crop the crop to use when capturing the screenshot * @param layer the layer to place the screenshot * * @return A SurfaceControl where the screenshot will be attached, or null if failed. */ public static SurfaceControl takeScreenshot(SurfaceControl.Transaction t, SurfaceControl sc, Rect crop) { Rect crop, int layer) { final SurfaceControl.ScreenshotHardwareBuffer buffer = SurfaceControl.captureLayers( new SurfaceControl.LayerCaptureArgs.Builder(sc) .setSourceCrop(crop) Loading @@ -60,7 +61,7 @@ public class ScreenshotUtils { t.setBuffer(screenshot, graphicBuffer); t.setColorSpace(screenshot, buffer.getColorSpace()); t.reparent(screenshot, sc); t.setLayer(screenshot, Integer.MAX_VALUE); t.setLayer(screenshot, layer); t.show(screenshot); t.apply(); return screenshot; Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java +4 −1 Original line number Diff line number Diff line Loading @@ -1159,8 +1159,11 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, preResizeBounds.offsetTo(0, 0); final Rect snapshotDest = new Rect(0, 0, destinationBounds.width(), destinationBounds.height()); // Note: Put this at layer=MAX_VALUE-2 since the input consumer for PIP is placed at // MAX_VALUE-1 final SurfaceControl snapshotSurface = ScreenshotUtils.takeScreenshot( mSurfaceControlTransactionFactory.getTransaction(), mLeash, preResizeBounds); mSurfaceControlTransactionFactory.getTransaction(), mLeash, preResizeBounds, Integer.MAX_VALUE - 2); if (snapshotSurface != null) { mSyncTransactionQueue.queue(wct); mSyncTransactionQueue.runInSync(t -> { Loading