diff options
author | Raphael Moll <raphael@google.com> | 2024-04-17 11:29:11 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-04-17 11:29:59 -0700 |
commit | 92fc90561cdb93bee3bc622ec9af11166e5d2660 (patch) | |
tree | d37c0f2bea2e00f65e24181efee67073ddf8daea | |
parent | e54bde4a2055e3cfcb63b5f4f1e9e6db5d1f8928 (diff) | |
download | robolectric-92fc90561cdb93bee3bc622ec9af11166e5d2660.tar.gz |
Add PerfStarts for Screenshots.
Used to track Software vs PixelCopy vs Hardware rendering modes.
PiperOrigin-RevId: 625751188
-rw-r--r-- | shadows/framework/src/main/java/org/robolectric/shadows/ShadowPixelCopy.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPixelCopy.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPixelCopy.java index a070ce1cb..9039e885e 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPixelCopy.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPixelCopy.java @@ -25,6 +25,7 @@ import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.shadow.api.Shadow; import org.robolectric.shadows.ShadowWindowManagerGlobal.WindowManagerGlobalReflector; +import org.robolectric.util.PerfStatsCollector; import org.robolectric.util.reflector.Accessor; import org.robolectric.util.reflector.Constructor; import org.robolectric.util.reflector.ForType; @@ -168,10 +169,18 @@ public class ShadowPixelCopy { Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); if (HardwareRenderingScreenshot.canTakeScreenshot()) { - HardwareRenderingScreenshot.takeScreenshot(view, bitmap); + PerfStatsCollector.getInstance() + .measure( + "ShadowPixelCopy-Hardware", + () -> HardwareRenderingScreenshot.takeScreenshot(view, bitmap)); } else { - Canvas screenshotCanvas = new Canvas(bitmap); - view.draw(screenshotCanvas); + PerfStatsCollector.getInstance() + .measure( + "ShadowPixelCopy-Software", + () -> { + Canvas screenshotCanvas = new Canvas(bitmap); + view.draw(screenshotCanvas); + }); } Rect dst = new Rect(0, 0, screenshot.getWidth(), screenshot.getHeight()); |