X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2FWebKit%2FSource%2Fcore%2Frendering%2FRenderHTMLCanvas.cpp;h=8b1d87d96c7cefa0bb587b46ca292c5dd81a8f2f;hb=4a1a0bdd01eef90b0826a0e761d3379d3715c10f;hp=41a294209064a7e9999a021ad08e49db18a7d5c8;hpb=b1be5ca53587d23e7aeb77b26861fdc0a181ffd8;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/WebKit/Source/core/rendering/RenderHTMLCanvas.cpp b/src/third_party/WebKit/Source/core/rendering/RenderHTMLCanvas.cpp index 41a2942..8b1d87d 100644 --- a/src/third_party/WebKit/Source/core/rendering/RenderHTMLCanvas.cpp +++ b/src/third_party/WebKit/Source/core/rendering/RenderHTMLCanvas.cpp @@ -34,7 +34,7 @@ #include "core/rendering/PaintInfo.h" #include "core/rendering/RenderView.h" -namespace WebCore { +namespace blink { using namespace HTMLNames; @@ -68,9 +68,17 @@ void RenderHTMLCanvas::paintReplaced(PaintInfo& paintInfo, const LayoutPoint& pa // FIXME: InterpolationNone should be used if ImageRenderingOptimizeContrast is set. // See bug for more details: crbug.com/353716. InterpolationQuality interpolationQuality = style()->imageRendering() == ImageRenderingOptimizeContrast ? InterpolationLow : CanvasDefaultInterpolationQuality; + + HTMLCanvasElement* canvas = toHTMLCanvasElement(node()); + LayoutSize layoutSize = contentRect.size(); + if (style()->imageRendering() == ImageRenderingPixelated + && (layoutSize.width() > canvas->width() || layoutSize.height() > canvas->height() || layoutSize == canvas->size())) { + interpolationQuality = InterpolationNone; + } + InterpolationQuality previousInterpolationQuality = context->imageInterpolationQuality(); context->setImageInterpolationQuality(interpolationQuality); - toHTMLCanvasElement(node())->paint(context, paintRect); + canvas->paint(context, paintRect); context->setImageInterpolationQuality(previousInterpolationQuality); if (clip) @@ -103,11 +111,8 @@ void RenderHTMLCanvas::canvasSizeChanged() setNeedsLayoutAndFullPaintInvalidation(); } -CompositingReasons RenderHTMLCanvas::additionalCompositingReasons(CompositingTriggerFlags triggers) const +CompositingReasons RenderHTMLCanvas::additionalCompositingReasons() const { - if (!(triggers & CanvasTrigger)) - return CompositingReasonNone; - HTMLCanvasElement* canvas = toHTMLCanvasElement(node()); if (canvas->renderingContext() && canvas->renderingContext()->isAccelerated()) return CompositingReasonCanvas; @@ -115,4 +120,4 @@ CompositingReasons RenderHTMLCanvas::additionalCompositingReasons(CompositingTri return CompositingReasonNone; } -} // namespace WebCore +} // namespace blink