diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-07-14 22:09:13 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-07-14 22:09:13 +0000 |
commit | 5c86f2885f3cc0f63686b2ac3655f9958449d9cc (patch) | |
tree | 1bc72e0caf0e6e1d11735bf2a8d92b63e5a62e5f | |
parent | 76e9cc0f0866650be18be095b4e8d5eb279c921b (diff) | |
parent | 0f284da9239a11e5c23c22222ccdc5babcbd0f7d (diff) | |
download | base-5c86f2885f3cc0f63686b2ac3655f9958449d9cc.tar.gz |
Merge "Avoid sampling outside BQ crop rect" into sc-dev
-rw-r--r-- | libs/hwui/Readback.cpp | 6 |
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)) { |