summaryrefslogtreecommitdiff
path: root/libs/hwui/Readback.cpp
diff options
context:
space:
mode:
authorScott Lobdell <slobdell@google.com>2021-07-23 16:46:35 +0000
committerScott Lobdell <slobdell@google.com>2021-07-23 17:56:38 +0000
commitdc5ea9d31ab76ba378da9c550813e6b7d8be1e69 (patch)
treee69528a4200094e8616a1303f0f3104ce54b9415 /libs/hwui/Readback.cpp
parentfef582047102b73e83831845a694f7409f33294b (diff)
parent0cf0aea05a722e3bec6fb3ea2077066edfd2fe57 (diff)
Merge SP1A.210715.002
Change-Id: I65e2b7db097927b87c9c4023015c754033c62086
Diffstat (limited to 'libs/hwui/Readback.cpp')
-rw-r--r--libs/hwui/Readback.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/libs/hwui/Readback.cpp b/libs/hwui/Readback.cpp
index d8735ce57b65..a743d30939d0 100644
--- a/libs/hwui/Readback.cpp
+++ b/libs/hwui/Readback.cpp
@@ -183,8 +183,10 @@ CopyResult Readback::copySurfaceInto(ANativeWindow* window, const Rect& inSrcRec
SkPaint paint;
paint.setAlpha(255);
paint.setBlendMode(SkBlendMode::kSrc);
- canvas->drawImageRect(image, imageSrcRect, imageDstRect, sampling, &paint,
- SkCanvas::kFast_SrcRectConstraint);
+ const bool hasBufferCrop = cropRect.left < cropRect.right && cropRect.top < cropRect.bottom;
+ auto constraint =
+ hasBufferCrop ? SkCanvas::kStrict_SrcRectConstraint : SkCanvas::kFast_SrcRectConstraint;
+ canvas->drawImageRect(image, imageSrcRect, imageDstRect, sampling, &paint, constraint);
canvas->restore();
if (!tmpSurface->readPixels(*bitmap, 0, 0)) {