Chromium Code Reviews| 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 |