| 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)));
|
| }
|
| }
|
|
|