Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1974)

Unified Diff: cc/playback/discardable_image_map.cc

Issue 1418573002: cc: Add image decode control in the compositor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)));
}
}

Powered by Google App Engine
This is Rietveld 408576698