Merge "Avoid sampling outside BQ crop rect" into sc-dev am: 5c86f2885f am: d4d62f581e

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15283873

Change-Id: I2a41b848550f20e0260d9ef16827b9020aadec87
This commit is contained in:
TreeHugger Robot
2021-07-14 22:32:44 +00:00
committed by Automerger Merge Worker

View File

@@ -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)) {