diff options
Diffstat (limited to 'Source/WebCore/rendering/style/StyleImage.h')
-rw-r--r-- | Source/WebCore/rendering/style/StyleImage.h | 46 |
1 files changed, 19 insertions, 27 deletions
diff --git a/Source/WebCore/rendering/style/StyleImage.h b/Source/WebCore/rendering/style/StyleImage.h index a0bd45a6f..bdd81af57 100644 --- a/Source/WebCore/rendering/style/StyleImage.h +++ b/Source/WebCore/rendering/style/StyleImage.h @@ -21,23 +21,23 @@ * */ -#ifndef StyleImage_h -#define StyleImage_h +#pragma once #include "CSSValue.h" +#include "FloatSize.h" #include "Image.h" -#include "IntSize.h" -#include "LayoutSize.h" -#include <wtf/PassRefPtr.h> #include <wtf/RefCounted.h> #include <wtf/RefPtr.h> +#include <wtf/TypeCasts.h> namespace WebCore { class CachedImage; +class CachedResourceLoader; class CSSValue; class RenderElement; class RenderObject; +struct ResourceLoaderOptions; typedef const void* WrappedImagePtr; @@ -45,53 +45,45 @@ class StyleImage : public RefCounted<StyleImage> { public: virtual ~StyleImage() { } - bool operator==(const StyleImage& other) const - { - return data() == other.data(); - } + virtual bool operator==(const StyleImage& other) const = 0; - virtual PassRefPtr<CSSValue> cssValue() const = 0; + virtual Ref<CSSValue> cssValue() const = 0; - virtual bool canRender(const RenderObject*, float /*multiplier*/) const { return true; } + virtual bool canRender(const RenderElement*, float /*multiplier*/) const { return true; } + virtual bool isPending() const = 0; + virtual void load(CachedResourceLoader&, const ResourceLoaderOptions&) = 0; virtual bool isLoaded() const { return true; } virtual bool errorOccurred() const { return false; } - virtual LayoutSize imageSize(const RenderElement*, float multiplier) const = 0; + virtual FloatSize imageSize(const RenderElement*, float multiplier) const = 0; virtual void computeIntrinsicDimensions(const RenderElement*, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) = 0; virtual bool imageHasRelativeWidth() const = 0; virtual bool imageHasRelativeHeight() const = 0; virtual bool usesImageContainerSize() const = 0; - virtual void setContainerSizeForRenderer(const RenderElement*, const IntSize&, float) = 0; + virtual void setContainerSizeForRenderer(const RenderElement*, const FloatSize&, float) = 0; virtual void addClient(RenderElement*) = 0; virtual void removeClient(RenderElement*) = 0; - virtual PassRefPtr<Image> image(RenderElement*, const IntSize&) const = 0; + virtual RefPtr<Image> image(RenderElement*, const FloatSize&) const = 0; virtual WrappedImagePtr data() const = 0; virtual float imageScaleFactor() const { return 1; } virtual bool knownToBeOpaque(const RenderElement*) const = 0; virtual CachedImage* cachedImage() const { return 0; } ALWAYS_INLINE bool isCachedImage() const { return m_isCachedImage; } - ALWAYS_INLINE bool isPendingImage() const { return m_isPendingImage; } ALWAYS_INLINE bool isGeneratedImage() const { return m_isGeneratedImage; } - ALWAYS_INLINE bool isCachedImageSet() const { return m_isCachedImageSet; } - - static bool imagesEquivalent(StyleImage* image1, StyleImage* image2) - { - return image1 == image2 || (image1 && image2 && *image1 == *image2); - } protected: StyleImage() : m_isCachedImage(false) - , m_isPendingImage(false) , m_isGeneratedImage(false) - , m_isCachedImageSet(false) { } bool m_isCachedImage : 1; - bool m_isPendingImage : 1; bool m_isGeneratedImage : 1; - bool m_isCachedImageSet : 1; }; -} -#endif +} // namespace WebCore + +#define SPECIALIZE_TYPE_TRAITS_STYLE_IMAGE(ToClassName, predicate) \ +SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::ToClassName) \ + static bool isType(const WebCore::StyleImage& image) { return image.predicate(); } \ +SPECIALIZE_TYPE_TRAITS_END() |