| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "config.h" |
| 6 #include "core/paint/ImagePainter.h" | 6 #include "core/paint/ImagePainter.h" |
| 7 | 7 |
| 8 #include "core/dom/Document.h" | 8 #include "core/dom/Document.h" |
| 9 #include "core/dom/Element.h" | 9 #include "core/dom/Element.h" |
| 10 #include "core/editing/FrameSelection.h" | 10 #include "core/editing/FrameSelection.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 | 121 |
| 122 void ImagePainter::paintIntoRect(GraphicsContext* context, const LayoutRect& rec
t) | 122 void ImagePainter::paintIntoRect(GraphicsContext* context, const LayoutRect& rec
t) |
| 123 { | 123 { |
| 124 if (!m_layoutImage.imageResource()->hasImage() || m_layoutImage.imageResourc
e()->errorOccurred()) | 124 if (!m_layoutImage.imageResource()->hasImage() || m_layoutImage.imageResourc
e()->errorOccurred()) |
| 125 return; // FIXME: should we just ASSERT these conditions? (audit all cal
lers). | 125 return; // FIXME: should we just ASSERT these conditions? (audit all cal
lers). |
| 126 | 126 |
| 127 IntRect alignedRect = pixelSnappedIntRect(rect); | 127 IntRect alignedRect = pixelSnappedIntRect(rect); |
| 128 if (alignedRect.width() <= 0 || alignedRect.height() <= 0) | 128 if (alignedRect.width() <= 0 || alignedRect.height() <= 0) |
| 129 return; | 129 return; |
| 130 | 130 |
| 131 RefPtr<Image> image = m_layoutImage.imageResource()->image(alignedRect.width
(), alignedRect.height()); | 131 RefPtr<Image> image = m_layoutImage.imageResource()->image(alignedRect.size(
)); |
| 132 if (!image || image->isNull()) | 132 if (!image || image->isNull()) |
| 133 return; | 133 return; |
| 134 | 134 |
| 135 // FIXME: why is interpolation quality selection not included in the Instrum
entation reported cost of drawing an image? | 135 // FIXME: why is interpolation quality selection not included in the Instrum
entation reported cost of drawing an image? |
| 136 InterpolationQuality interpolationQuality = BoxPainter::chooseInterpolationQ
uality(m_layoutImage, context, image.get(), image.get(), LayoutSize(alignedRect.
size())); | 136 InterpolationQuality interpolationQuality = BoxPainter::chooseInterpolationQ
uality(m_layoutImage, context, image.get(), image.get(), LayoutSize(alignedRect.
size())); |
| 137 | 137 |
| 138 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "PaintImage", "
data", InspectorPaintImageEvent::data(m_layoutImage)); | 138 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "PaintImage", "
data", InspectorPaintImageEvent::data(m_layoutImage)); |
| 139 | 139 |
| 140 InterpolationQuality previousInterpolationQuality = context->imageInterpolat
ionQuality(); | 140 InterpolationQuality previousInterpolationQuality = context->imageInterpolat
ionQuality(); |
| 141 context->setImageInterpolationQuality(interpolationQuality); | 141 context->setImageInterpolationQuality(interpolationQuality); |
| 142 context->drawImage(image.get(), alignedRect, SkXfermode::kSrcOver_Mode, m_la
youtImage.shouldRespectImageOrientation()); | 142 context->drawImage(image.get(), alignedRect, SkXfermode::kSrcOver_Mode, m_la
youtImage.shouldRespectImageOrientation()); |
| 143 context->setImageInterpolationQuality(previousInterpolationQuality); | 143 context->setImageInterpolationQuality(previousInterpolationQuality); |
| 144 } | 144 } |
| 145 | 145 |
| 146 } // namespace blink | 146 } // namespace blink |
| OLD | NEW |