diff options
| author | 2015-08-18 14:52:52 -0700 | |
|---|---|---|
| committer | 2015-08-18 14:53:47 -0700 | |
| commit | e688bf720334f58e0003b4c75b53cc7618adf43f (patch) | |
| tree | b0f0966e938947efa69e5669ca2e7614b5eed107 | |
| parent | f2cb6f7e3ea143ba4acace0821c9d49e363da7eb (diff) | |
Constrain drawBitmap matrix-to-rect optimization
bug:22962165
Optimization is not valid if matrix would flip image.
Change-Id: Ieee42390517bd3466b7d94596f0fbbe192ab757e
| -rw-r--r-- | libs/hwui/DisplayListCanvas.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/hwui/DisplayListCanvas.cpp b/libs/hwui/DisplayListCanvas.cpp index aeb1a3d0ae68..2dd52788074d 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; |