summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderImageResource.cpp
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2016-08-25 19:20:41 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-02-02 12:30:55 +0000
commit6882a04fb36642862b11efe514251d32070c3d65 (patch)
treeb7959826000b061fd5ccc7512035c7478742f7b0 /Source/WebCore/rendering/RenderImageResource.cpp
parentab6df191029eeeb0b0f16f127d553265659f739e (diff)
downloadqtwebkit-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.cpp38
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