diff options
author | Konstantin Tokarev <annulen@yandex.ru> | 2016-08-25 19:20:41 +0300 |
---|---|---|
committer | Konstantin Tokarev <annulen@yandex.ru> | 2017-02-02 12:30:55 +0000 |
commit | 6882a04fb36642862b11efe514251d32070c3d65 (patch) | |
tree | b7959826000b061fd5ccc7512035c7478742f7b0 /Source/WebCore/rendering/RenderImageResource.cpp | |
parent | ab6df191029eeeb0b0f16f127d553265659f739e (diff) | |
download | qtwebkit-6882a04fb36642862b11efe514251d32070c3d65.tar.gz |
Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)
Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/WebCore/rendering/RenderImageResource.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderImageResource.cpp | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/Source/WebCore/rendering/RenderImageResource.cpp b/Source/WebCore/rendering/RenderImageResource.cpp index 5821c2391..45115a6fa 100644 --- a/Source/WebCore/rendering/RenderImageResource.cpp +++ b/Source/WebCore/rendering/RenderImageResource.cpp @@ -30,8 +30,9 @@ #include "CachedImage.h" #include "Image.h" +#include "RenderElement.h" +#include "RenderImage.h" #include "RenderImageResourceStyleImage.h" -#include "RenderObject.h" namespace WebCore { @@ -44,7 +45,7 @@ RenderImageResource::~RenderImageResource() { } -void RenderImageResource::initialize(RenderObject* renderer) +void RenderImageResource::initialize(RenderElement* renderer) { ASSERT(!m_renderer); ASSERT(renderer); @@ -73,8 +74,6 @@ void RenderImageResource::setCachedImage(CachedImage* newImage) m_cachedImage->addClient(m_renderer); if (m_cachedImage->errorOccurred()) m_renderer->imageChanged(m_cachedImage.get()); - } else { - m_renderer->imageChanged(m_cachedImage.get()); } } @@ -91,9 +90,9 @@ void RenderImageResource::resetAnimation() m_renderer->repaint(); } -PassRefPtr<Image> RenderImageResource::image(int, int) const +RefPtr<Image> RenderImageResource::image(int, int) const { - return m_cachedImage ? m_cachedImage->imageForRenderer(m_renderer) : nullImage(); + return m_cachedImage ? m_cachedImage->imageForRenderer(m_renderer) : Image::nullImage(); } bool RenderImageResource::errorOccurred() const @@ -105,32 +104,37 @@ void RenderImageResource::setContainerSizeForRenderer(const IntSize& imageContai { ASSERT(m_renderer); if (m_cachedImage) - m_cachedImage->setContainerSizeForRenderer(m_renderer, imageContainerSize, m_renderer->style()->effectiveZoom()); + m_cachedImage->setContainerSizeForRenderer(m_renderer, imageContainerSize, m_renderer->style().effectiveZoom()); } -Image* RenderImageResource::nullImage() +bool RenderImageResource::imageHasRelativeWidth() const { - return Image::nullImage(); + return m_cachedImage ? m_cachedImage->imageHasRelativeWidth() : false; } -bool RenderImageResource::usesImageContainerSize() const +bool RenderImageResource::imageHasRelativeHeight() const { - return m_cachedImage ? m_cachedImage->usesImageContainerSize() : false; + return m_cachedImage ? m_cachedImage->imageHasRelativeHeight() : false; } -bool RenderImageResource::imageHasRelativeWidth() const +LayoutSize RenderImageResource::imageSize(float multiplier) const { - return m_cachedImage ? m_cachedImage->imageHasRelativeWidth() : false; + return getImageSize(multiplier, CachedImage::UsedSize); } -bool RenderImageResource::imageHasRelativeHeight() const +LayoutSize RenderImageResource::intrinsicSize(float multiplier) const { - return m_cachedImage ? m_cachedImage->imageHasRelativeHeight() : false; + return getImageSize(multiplier, CachedImage::IntrinsicSize); } -LayoutSize RenderImageResource::imageSize(float multiplier) const +LayoutSize RenderImageResource::getImageSize(float multiplier, CachedImage::SizeType type) const { - return m_cachedImage ? m_cachedImage->imageSizeForRenderer(m_renderer, multiplier) : LayoutSize(); + if (!m_cachedImage) + return LayoutSize(); + LayoutSize size = m_cachedImage->imageSizeForRenderer(m_renderer, multiplier, type); + if (is<RenderImage>(m_renderer)) + size.scale(downcast<RenderImage>(*m_renderer).imageDevicePixelRatio()); + return size; } } // namespace WebCore |