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

Unified Diff: cc/playback/image_hijack_canvas.cc

Issue 1839143004: Limit image filtering during scale animations Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months 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
« no previous file with comments | « cc/playback/image_hijack_canvas.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/playback/image_hijack_canvas.cc
diff --git a/cc/playback/image_hijack_canvas.cc b/cc/playback/image_hijack_canvas.cc
index d0c5c5c72b519bfdeada973b1fedfdcfee6f3dd9..8927f79ddce96c6a02e5e8218f1abef19f2cb4ae 100644
--- a/cc/playback/image_hijack_canvas.cc
+++ b/cc/playback/image_hijack_canvas.cc
@@ -23,11 +23,13 @@ class ScopedDecodedImageLock {
const SkImage* image,
const SkRect& src_rect,
const SkMatrix& matrix,
- const SkPaint* paint)
+ const SkPaint* paint,
+ SkFilterQuality max_quality)
: image_decode_controller_(image_decode_controller),
draw_image_(image,
RoundOutRect(src_rect),
- paint ? paint->getFilterQuality() : kNone_SkFilterQuality,
+ paint ? std::min(max_quality, paint->getFilterQuality())
+ : kNone_SkFilterQuality,
matrix),
decoded_draw_image_(
image_decode_controller_->GetDecodedImageForDraw(draw_image_)) {
@@ -58,9 +60,11 @@ class ScopedDecodedImageLock {
ImageHijackCanvas::ImageHijackCanvas(
int width,
int height,
- ImageDecodeController* image_decode_controller)
+ ImageDecodeController* image_decode_controller,
+ SkFilterQuality max_quality)
: SkNWayCanvas(width, height),
- image_decode_controller_(image_decode_controller) {}
+ image_decode_controller_(image_decode_controller),
+ max_quality_(max_quality) {}
void ImageHijackCanvas::onDrawPicture(const SkPicture* picture,
const SkMatrix* matrix,
@@ -83,7 +87,8 @@ void ImageHijackCanvas::onDrawImage(const SkImage* image,
ScopedDecodedImageLock scoped_lock(
image_decode_controller_, image,
- SkRect::MakeIWH(image->width(), image->height()), ctm, paint);
+ SkRect::MakeIWH(image->width(), image->height()), ctm, paint,
+ max_quality_);
const DecodedDrawImage& decoded_image = scoped_lock.decoded_image();
if (!decoded_image.image())
return;
@@ -123,7 +128,7 @@ void ImageHijackCanvas::onDrawImageRect(const SkImage* image,
matrix.postConcat(getTotalMatrix());
ScopedDecodedImageLock scoped_lock(image_decode_controller_, image, *src,
- matrix, paint);
+ matrix, paint, max_quality_);
const DecodedDrawImage& decoded_image = scoped_lock.decoded_image();
if (!decoded_image.image())
return;
« no previous file with comments | « cc/playback/image_hijack_canvas.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698