Merge "Avoid sampling outside BQ crop rect"

This commit is contained in:
Treehugger Robot
2021-07-15 19:59:11 +00:00
committed by Gerrit Code Review

View File

@@ -189,8 +189,10 @@ CopyResult Readback::copySurfaceInto(ANativeWindow* window, const Rect& inSrcRec
if (srcRect.width() != bitmap->width() || srcRect.height() != bitmap->height()) { if (srcRect.width() != bitmap->width() || srcRect.height() != bitmap->height()) {
paint.setFilterQuality(kLow_SkFilterQuality); paint.setFilterQuality(kLow_SkFilterQuality);
} }
canvas->drawImageRect(image, imageSrcRect, imageDstRect, &paint, const bool hasBufferCrop = cropRect.left < cropRect.right && cropRect.top < cropRect.bottom;
SkCanvas::kFast_SrcRectConstraint); auto constraint =
hasBufferCrop ? SkCanvas::kStrict_SrcRectConstraint : SkCanvas::kFast_SrcRectConstraint;
canvas->drawImageRect(image, imageSrcRect, imageDstRect, &paint, constraint);
canvas->restore(); canvas->restore();
if (!tmpSurface->readPixels(*bitmap, 0, 0)) { if (!tmpSurface->readPixels(*bitmap, 0, 0)) {