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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp

Issue 2157953002: Change filter quality when scaling-down in drawImage (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2004, 2005, 2006, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2004, 2005, 2006, 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Google Inc. All rights reserved. 3 * Copyright (C) 2013 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 if (contextDisabled() || !image) 755 if (contextDisabled() || !image)
756 return; 756 return;
757 757
758 const FloatRect src = srcPtr ? *srcPtr : image->rect(); 758 const FloatRect src = srcPtr ? *srcPtr : image->rect();
759 759
760 SkPaint imagePaint = immutableState()->fillPaint(); 760 SkPaint imagePaint = immutableState()->fillPaint();
761 imagePaint.setXfermodeMode(op); 761 imagePaint.setXfermodeMode(op);
762 imagePaint.setColor(SK_ColorBLACK); 762 imagePaint.setColor(SK_ColorBLACK);
763 imagePaint.setFilterQuality(computeFilterQuality(image, dest, src)); 763 imagePaint.setFilterQuality(computeFilterQuality(image, dest, src));
764 imagePaint.setAntiAlias(shouldAntialias()); 764 imagePaint.setAntiAlias(shouldAntialias());
765 image->draw(m_canvas, imagePaint, dest, src, shouldRespectImageOrientation, Image::ClampImageToSourceRect); 765 image->draw(m_canvas, imagePaint, dest, src, true, shouldRespectImageOrienta tion, Image::ClampImageToSourceRect);
766 m_paintController.setImagePainted(); 766 m_paintController.setImagePainted();
767 } 767 }
768 768
769 void GraphicsContext::drawImageRRect(Image* image, const FloatRoundedRect& dest, 769 void GraphicsContext::drawImageRRect(Image* image, const FloatRoundedRect& dest,
770 const FloatRect& srcRect, SkXfermode::Mode op, RespectImageOrientationEnum r espectOrientation) 770 const FloatRect& srcRect, SkXfermode::Mode op, RespectImageOrientationEnum r espectOrientation)
771 { 771 {
772 if (contextDisabled() || !image) 772 if (contextDisabled() || !image)
773 return; 773 return;
774 774
775 if (!dest.isRounded()) { 775 if (!dest.isRounded()) {
(...skipping 20 matching lines...) Expand all
796 useShader = image->applyShader(imagePaint, localMatrix); 796 useShader = image->applyShader(imagePaint, localMatrix);
797 } 797 }
798 798
799 if (useShader) { 799 if (useShader) {
800 // Shader-based fast path. 800 // Shader-based fast path.
801 m_canvas->drawRRect(dest, imagePaint); 801 m_canvas->drawRRect(dest, imagePaint);
802 } else { 802 } else {
803 // Clip-based fallback. 803 // Clip-based fallback.
804 SkAutoCanvasRestore autoRestore(m_canvas, true); 804 SkAutoCanvasRestore autoRestore(m_canvas, true);
805 m_canvas->clipRRect(dest, SkRegion::kIntersect_Op, imagePaint.isAntiAlia s()); 805 m_canvas->clipRRect(dest, SkRegion::kIntersect_Op, imagePaint.isAntiAlia s());
806 image->draw(m_canvas, imagePaint, dest.rect(), srcRect, respectOrientati on, Image::ClampImageToSourceRect); 806 image->draw(m_canvas, imagePaint, dest.rect(), srcRect, true, respectOri entation, Image::ClampImageToSourceRect);
807 } 807 }
808 808
809 m_paintController.setImagePainted(); 809 m_paintController.setImagePainted();
810 } 810 }
811 811
812 SkFilterQuality GraphicsContext::computeFilterQuality(Image* image, const FloatR ect& dest, const FloatRect& src) const 812 SkFilterQuality GraphicsContext::computeFilterQuality(Image* image, const FloatR ect& dest, const FloatRect& src) const
813 { 813 {
814 InterpolationQuality resampling; 814 InterpolationQuality resampling;
815 if (printing()) { 815 if (printing()) {
816 resampling = InterpolationNone; 816 resampling = InterpolationNone;
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
1331 static const SkPMColor colors[] = { 1331 static const SkPMColor colors[] = {
1332 SkPreMultiplyARGB(0x60, 0xFF, 0x00, 0x00), // More transparent red 1332 SkPreMultiplyARGB(0x60, 0xFF, 0x00, 0x00), // More transparent red
1333 SkPreMultiplyARGB(0x60, 0xC0, 0xC0, 0xC0) // More transparent gray 1333 SkPreMultiplyARGB(0x60, 0xC0, 0xC0, 0xC0) // More transparent gray
1334 }; 1334 };
1335 1335
1336 return colors[index]; 1336 return colors[index];
1337 } 1337 }
1338 #endif 1338 #endif
1339 1339
1340 } // namespace blink 1340 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698