Index: cc/playback/discardable_image_map.cc |
diff --git a/cc/playback/discardable_image_map.cc b/cc/playback/discardable_image_map.cc |
index 133347544febde0358e421249e3a8bdc9757efd8..60a3f3ca1f20e9dfe5eb18bab4acae1eea962f06 100644 |
--- a/cc/playback/discardable_image_map.cc |
+++ b/cc/playback/discardable_image_map.cc |
@@ -23,13 +23,15 @@ SkRect MapRect(const SkMatrix& matrix, const SkRect& src) { |
return dst; |
} |
-SkSize ExtractScale(const SkMatrix& matrix) { |
- SkSize scale = SkSize::Make(matrix.getScaleX(), matrix.getScaleY()); |
+bool ExtractScale(const SkMatrix& matrix, SkSize* scale) { |
+ *scale = SkSize::Make(matrix.getScaleX(), matrix.getScaleY()); |
if (matrix.getType() & SkMatrix::kAffine_Mask) { |
- if (!matrix.decomposeScale(&scale)) |
- scale.set(1, 1); |
+ if (!matrix.decomposeScale(scale)) { |
+ scale->set(1, 1); |
+ return false; |
+ } |
} |
- return scale; |
+ return true; |
} |
// We're using an NWay canvas with no added canvases, so in effect |
@@ -97,8 +99,11 @@ class DiscardableImagesMetadataCanvas : public SkNWayCanvas { |
if (paint) { |
filter_quality = paint->getFilterQuality(); |
} |
+ SkSize scale; |
+ bool is_decomposable = ExtractScale(matrix, &scale); |
image_set_->push_back( |
- std::make_pair(DrawImage(image, ExtractScale(matrix), filter_quality), |
+ std::make_pair(DrawImage(image, scale, filter_quality, |
+ matrix.hasPerspective(), is_decomposable), |
gfx::SkRectToRectF(rect))); |
} |
} |