diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/rendering/style/StyleCachedImage.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/rendering/style/StyleCachedImage.h')
-rw-r--r-- | Source/WebCore/rendering/style/StyleCachedImage.h | 60 |
1 files changed, 35 insertions, 25 deletions
diff --git a/Source/WebCore/rendering/style/StyleCachedImage.h b/Source/WebCore/rendering/style/StyleCachedImage.h index 0ef45d2d6..b8794a3ad 100644 --- a/Source/WebCore/rendering/style/StyleCachedImage.h +++ b/Source/WebCore/rendering/style/StyleCachedImage.h @@ -21,8 +21,7 @@ * */ -#ifndef StyleCachedImage_h -#define StyleCachedImage_h +#pragma once #include "CachedImageClient.h" #include "CachedResourceHandle.h" @@ -30,39 +29,50 @@ namespace WebCore { +class CSSValue; class CachedImage; +class Document; -class StyleCachedImage final : public StyleImage, private CachedImageClient { +class StyleCachedImage final : public StyleImage { WTF_MAKE_FAST_ALLOCATED; public: - static PassRefPtr<StyleCachedImage> create(CachedImage* image) { return adoptRef(new StyleCachedImage(image)); } + static Ref<StyleCachedImage> create(CSSValue& cssValue) { return adoptRef(*new StyleCachedImage(cssValue)); } virtual ~StyleCachedImage(); - virtual CachedImage* cachedImage() const override { return m_image.get(); } + bool operator==(const StyleImage& other) const override; -private: - virtual WrappedImagePtr data() const override { return m_image.get(); } + CachedImage* cachedImage() const override; + + WrappedImagePtr data() const override { return m_cachedImage.get(); } - virtual PassRefPtr<CSSValue> cssValue() const override; + Ref<CSSValue> cssValue() const override; - virtual bool canRender(const RenderObject*, float multiplier) const override; - virtual bool isLoaded() const override; - virtual bool errorOccurred() const override; - virtual LayoutSize imageSize(const RenderElement*, float multiplier) const override; - virtual bool imageHasRelativeWidth() const override; - virtual bool imageHasRelativeHeight() const override; - virtual void computeIntrinsicDimensions(const RenderElement*, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) override; - virtual bool usesImageContainerSize() const override; - virtual void setContainerSizeForRenderer(const RenderElement*, const IntSize&, float) override; - virtual void addClient(RenderElement*) override; - virtual void removeClient(RenderElement*) override; - virtual PassRefPtr<Image> image(RenderElement*, const IntSize&) const override; - virtual bool knownToBeOpaque(const RenderElement*) const override; + bool canRender(const RenderElement*, float multiplier) const override; + bool isPending() const override; + void load(CachedResourceLoader&, const ResourceLoaderOptions&) override; + bool isLoaded() const override; + bool errorOccurred() const override; + FloatSize imageSize(const RenderElement*, float multiplier) const override; + bool imageHasRelativeWidth() const override; + bool imageHasRelativeHeight() const override; + void computeIntrinsicDimensions(const RenderElement*, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) override; + bool usesImageContainerSize() const override; + void setContainerSizeForRenderer(const RenderElement*, const FloatSize&, float) override; + void addClient(RenderElement*) override; + void removeClient(RenderElement*) override; + RefPtr<Image> image(RenderElement*, const FloatSize&) const override; + float imageScaleFactor() const override; + bool knownToBeOpaque(const RenderElement*) const override; - explicit StyleCachedImage(CachedImage*); +private: + StyleCachedImage(CSSValue&); - CachedResourceHandle<CachedImage> m_image; + Ref<CSSValue> m_cssValue; + bool m_isPending { true }; + mutable float m_scaleFactor { 1 }; + mutable CachedResourceHandle<CachedImage> m_cachedImage; }; -} -#endif +} // namespace WebCore + +SPECIALIZE_TYPE_TRAITS_STYLE_IMAGE(StyleCachedImage, isCachedImage) |