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

Unified Diff: cc/playback/draw_image.h

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/draw_image.h
diff --git a/cc/playback/draw_image.h b/cc/playback/draw_image.h
index 3dbce12e5323570c892415da1549ffc54bb13aba..4ddf7fd4fc289a6afa54be6f022fba507f8912d3 100644
--- a/cc/playback/draw_image.h
+++ b/cc/playback/draw_image.h
@@ -16,23 +16,63 @@ class DrawImage {
DrawImage() : image_(nullptr), filter_quality_(kNone_SkFilterQuality) {}
DrawImage(const SkImage* image,
const SkSize& scale,
- SkFilterQuality filter_quality)
- : image_(image), scale_(scale), filter_quality_(filter_quality) {}
+ SkFilterQuality filter_quality,
+ bool matrix_has_perspective,
+ bool matrix_is_decomposable)
+ : image_(image),
+ scale_(scale),
+ filter_quality_(filter_quality),
+ matrix_has_perspective_(matrix_has_perspective),
+ matrix_is_decomposable_(matrix_is_decomposable) {}
const SkImage* image() const { return image_; }
const SkSize& scale() const { return scale_; }
SkFilterQuality filter_quality() const { return filter_quality_; }
+ bool matrix_has_perspective() const { return matrix_has_perspective_; }
+ bool matrix_is_decomposable() const { return matrix_is_decomposable_; }
DrawImage ApplyScale(float scale) const {
return DrawImage(
image_, SkSize::Make(scale_.width() * scale, scale_.height() * scale),
- filter_quality_);
+ filter_quality_, matrix_has_perspective_, matrix_is_decomposable_);
}
private:
const SkImage* image_;
SkSize scale_;
SkFilterQuality filter_quality_;
+ bool matrix_has_perspective_;
+ bool matrix_is_decomposable_;
+};
+
+class DecodedDrawImage {
enne (OOO) 2015/12/02 23:33:25 Different classes, different files?
vmpstr 2015/12/03 21:20:23 Done.
+ public:
+ DecodedDrawImage(const SkImage* image,
+ const SkSize& scale_adjustment,
+ SkFilterQuality filter_quality)
+ : image_(image),
+ scale_adjustment_(scale_adjustment),
+ filter_quality_(filter_quality),
+ at_raster_decode_(false) {}
+
+ const SkImage* image() const { return image_; }
+ const SkSize& scale_adjustment() const { return scale_adjustment_; }
+ SkFilterQuality filter_quality() const { return filter_quality_; }
+ bool is_scale_adjustment_identity() const {
+ return std::abs(scale_adjustment_.width() - 1.f) < FLT_EPSILON &&
+ std::abs(scale_adjustment_.height() - 1.f) < FLT_EPSILON;
+ }
+
+ void set_at_raster_decode(bool at_raster_decode) {
+ at_raster_decode_ = at_raster_decode;
+ }
+ bool is_at_raster_decode() const { return at_raster_decode_; }
+
+ private:
+ const SkImage* image_;
+ SkSize scale_adjustment_;
+ SkFilterQuality filter_quality_;
+ bool at_raster_decode_;
};
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698