From e688bf720334f58e0003b4c75b53cc7618adf43f Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Tue, 18 Aug 2015 14:52:52 -0700 Subject: Constrain drawBitmap matrix-to-rect optimization bug:22962165 Optimization is not valid if matrix would flip image. Change-Id: Ieee42390517bd3466b7d94596f0fbbe192ab757e --- libs/hwui/DisplayListCanvas.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'libs') diff --git a/libs/hwui/DisplayListCanvas.cpp b/libs/hwui/DisplayListCanvas.cpp index aeb1a3d..2dd5278 100644 --- a/libs/hwui/DisplayListCanvas.cpp +++ b/libs/hwui/DisplayListCanvas.cpp @@ -255,7 +255,9 @@ void DisplayListCanvas::drawBitmap(const SkBitmap& bitmap, const SkMatrix& matri const SkPaint* paint) { if (matrix.isIdentity()) { drawBitmap(&bitmap, paint); - } else if (!(matrix.getType() & ~(SkMatrix::kScale_Mask | SkMatrix::kTranslate_Mask))) { + } else if (!(matrix.getType() & ~(SkMatrix::kScale_Mask | SkMatrix::kTranslate_Mask)) + && MathUtils::isPositive(matrix.getScaleX()) + && MathUtils::isPositive(matrix.getScaleY())) { // SkMatrix::isScaleTranslate() not available in L SkRect src; SkRect dst; -- cgit v1.1