Title: [272421] trunk/Source/WebCore
Revision
272421
Author
[email protected]
Date
2021-02-05 10:12:24 -0800 (Fri, 05 Feb 2021)

Log Message

StyleImage refinement to follow up recent changes
https://bugs.webkit.org/show_bug.cgi?id=221434

Reviewed by Sam Weinig.

* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::hasOpaqueImage const): Pass a reference.
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::knownToBeOpaque const): Take a reference.
* rendering/style/StyleCachedImage.h: Take a reference.
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::imageSize const): Simplify using an early return.
Remove an unnnecessary redundant null check.
(WebCore::StyleGeneratedImage::knownToBeOpaque const): Take and pass a reference.
* rendering/style/StyleGeneratedImage.h: Take a reference.
* rendering/style/StyleImage.h: Take a reference.
* rendering/style/StyleMultiImage.cpp:
(WebCore::StyleMultiImage::knownToBeOpaque const): Take a reference.
* rendering/style/StyleMultiImage.h: Take a reference.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (272420 => 272421)


--- trunk/Source/WebCore/ChangeLog	2021-02-05 17:38:19 UTC (rev 272420)
+++ trunk/Source/WebCore/ChangeLog	2021-02-05 18:12:24 UTC (rev 272421)
@@ -1,3 +1,25 @@
+2021-02-04  Darin Adler  <[email protected]>
+
+        StyleImage refinement to follow up recent changes
+        https://bugs.webkit.org/show_bug.cgi?id=221434
+
+        Reviewed by Sam Weinig.
+
+        * rendering/style/FillLayer.cpp:
+        (WebCore::FillLayer::hasOpaqueImage const): Pass a reference.
+        * rendering/style/StyleCachedImage.cpp:
+        (WebCore::StyleCachedImage::knownToBeOpaque const): Take a reference.
+        * rendering/style/StyleCachedImage.h: Take a reference.
+        * rendering/style/StyleGeneratedImage.cpp:
+        (WebCore::StyleGeneratedImage::imageSize const): Simplify using an early return.
+        Remove an unnnecessary redundant null check.
+        (WebCore::StyleGeneratedImage::knownToBeOpaque const): Take and pass a reference.
+        * rendering/style/StyleGeneratedImage.h: Take a reference.
+        * rendering/style/StyleImage.h: Take a reference.
+        * rendering/style/StyleMultiImage.cpp:
+        (WebCore::StyleMultiImage::knownToBeOpaque const): Take a reference.
+        * rendering/style/StyleMultiImage.h: Take a reference.
+
 2021-02-05  Zalan Bujtas  <[email protected]>
 
         [LFC][IFC] Add support for "word separator" when the whitespace content has multiple characters

Modified: trunk/Source/WebCore/rendering/style/FillLayer.cpp (272420 => 272421)


--- trunk/Source/WebCore/rendering/style/FillLayer.cpp	2021-02-05 17:38:19 UTC (rev 272420)
+++ trunk/Source/WebCore/rendering/style/FillLayer.cpp	2021-02-05 18:12:24 UTC (rev 272421)
@@ -370,7 +370,7 @@
     if (static_cast<CompositeOperator>(m_composite) == CompositeOperator::Clear || static_cast<CompositeOperator>(m_composite) == CompositeOperator::Copy)
         return true;
 
-    return static_cast<BlendMode>(m_blendMode) == BlendMode::Normal && static_cast<CompositeOperator>(m_composite) == CompositeOperator::SourceOver && m_image->knownToBeOpaque(&renderer);
+    return static_cast<BlendMode>(m_blendMode) == BlendMode::Normal && static_cast<CompositeOperator>(m_composite) == CompositeOperator::SourceOver && m_image->knownToBeOpaque(renderer);
 }
 
 bool FillLayer::hasRepeatXY() const

Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp (272420 => 272421)


--- trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp	2021-02-05 17:38:19 UTC (rev 272420)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp	2021-02-05 18:12:24 UTC (rev 272421)
@@ -185,11 +185,9 @@
     return m_scaleFactor;
 }
 
-bool StyleCachedImage::knownToBeOpaque(const RenderElement* renderer) const
+bool StyleCachedImage::knownToBeOpaque(const RenderElement& renderer) const
 {
-    if (!m_cachedImage)
-        return false;
-    return m_cachedImage->currentFrameKnownToBeOpaque(renderer);
+    return m_cachedImage && m_cachedImage->currentFrameKnownToBeOpaque(&renderer);
 }
 
 }

Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.h (272420 => 272421)


--- trunk/Source/WebCore/rendering/style/StyleCachedImage.h	2021-02-05 17:38:19 UTC (rev 272420)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.h	2021-02-05 18:12:24 UTC (rev 272421)
@@ -62,7 +62,7 @@
     void removeClient(RenderElement&) final;
     RefPtr<Image> image(RenderElement*, const FloatSize&) const final;
     float imageScaleFactor() const final;
-    bool knownToBeOpaque(const RenderElement*) const final;
+    bool knownToBeOpaque(const RenderElement&) const final;
 
 private:
     StyleCachedImage(CSSImageValue&, float);

Modified: trunk/Source/WebCore/rendering/style/StyleGeneratedImage.cpp (272420 => 272421)


--- trunk/Source/WebCore/rendering/style/StyleGeneratedImage.cpp	2021-02-05 17:38:19 UTC (rev 272420)
+++ trunk/Source/WebCore/rendering/style/StyleGeneratedImage.cpp	2021-02-05 18:12:24 UTC (rev 272421)
@@ -54,29 +54,27 @@
 
 FloatSize StyleGeneratedImage::imageSize(const RenderElement* renderer, float multiplier) const
 {
-    if (m_fixedSize) {
-        if (!renderer)
-            return { };
+    if (!m_fixedSize)
+        return m_containerSize;
 
-        FloatSize fixedSize = m_imageGeneratorValue->fixedSize(*renderer);
-        if (multiplier == 1.0f)
-            return fixedSize;
+    if (!renderer)
+        return { };
 
-        float width = fixedSize.width() * multiplier;
-        float height = fixedSize.height() * multiplier;
+    FloatSize fixedSize = m_imageGeneratorValue->fixedSize(*renderer);
+    if (multiplier == 1.0f)
+        return fixedSize;
 
-        // Don't let images that have a width/height >= 1 shrink below 1 device pixel when zoomed.
-        float deviceScaleFactor = renderer ? renderer->document().deviceScaleFactor() : 1;
-        if (fixedSize.width() > 0)
-            width = std::max<float>(1 / deviceScaleFactor, width);
+    float width = fixedSize.width() * multiplier;
+    float height = fixedSize.height() * multiplier;
 
-        if (fixedSize.height() > 0)
-            height = std::max<float>(1 / deviceScaleFactor, height);
+    // Don't let images that have a width/height >= 1 shrink below 1 device pixel when zoomed.
+    float deviceScaleFactor = renderer->document().deviceScaleFactor();
+    if (fixedSize.width() > 0)
+        width = std::max<float>(1 / deviceScaleFactor, width);
+    if (fixedSize.height() > 0)
+        height = std::max<float>(1 / deviceScaleFactor, height);
 
-        return FloatSize(width, height);
-    }
-    
-    return m_containerSize;
+    return { width, height };
 }
 
 void StyleGeneratedImage::computeIntrinsicDimensions(const RenderElement* renderer, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio)
@@ -103,9 +101,9 @@
     return renderer ? m_imageGeneratorValue->image(*renderer, size) : &Image::nullImage();
 }
 
-bool StyleGeneratedImage::knownToBeOpaque(const RenderElement* renderer) const
+bool StyleGeneratedImage::knownToBeOpaque(const RenderElement& renderer) const
 {
-    return renderer && m_imageGeneratorValue->knownToBeOpaque(*renderer);
+    return m_imageGeneratorValue->knownToBeOpaque(renderer);
 }
 
 }

Modified: trunk/Source/WebCore/rendering/style/StyleGeneratedImage.h (272420 => 272421)


--- trunk/Source/WebCore/rendering/style/StyleGeneratedImage.h	2021-02-05 17:38:19 UTC (rev 272420)
+++ trunk/Source/WebCore/rendering/style/StyleGeneratedImage.h	2021-02-05 18:12:24 UTC (rev 272421)
@@ -57,7 +57,7 @@
     void addClient(RenderElement&) final;
     void removeClient(RenderElement&) final;
     RefPtr<Image> image(RenderElement*, const FloatSize&) const final;
-    bool knownToBeOpaque(const RenderElement*) const final;
+    bool knownToBeOpaque(const RenderElement&) const final;
 
     explicit StyleGeneratedImage(Ref<CSSImageGeneratorValue>&&);
     

Modified: trunk/Source/WebCore/rendering/style/StyleImage.h (272420 => 272421)


--- trunk/Source/WebCore/rendering/style/StyleImage.h	2021-02-05 17:38:19 UTC (rev 272420)
+++ trunk/Source/WebCore/rendering/style/StyleImage.h	2021-02-05 18:12:24 UTC (rev 272421)
@@ -65,7 +65,7 @@
     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 bool knownToBeOpaque(const RenderElement&) const = 0;
     virtual CachedImage* cachedImage() const { return 0; }
     virtual StyleImage* selectedImage() { return this; }
     virtual const StyleImage* selectedImage() const { return this; }

Modified: trunk/Source/WebCore/rendering/style/StyleMultiImage.cpp (272420 => 272421)


--- trunk/Source/WebCore/rendering/style/StyleMultiImage.cpp	2021-02-05 17:38:19 UTC (rev 272420)
+++ trunk/Source/WebCore/rendering/style/StyleMultiImage.cpp	2021-02-05 18:12:24 UTC (rev 272421)
@@ -162,7 +162,7 @@
     return m_selectedImage->imageScaleFactor();
 }
 
-bool StyleMultiImage::knownToBeOpaque(const RenderElement* renderer) const
+bool StyleMultiImage::knownToBeOpaque(const RenderElement& renderer) const
 {
     return m_selectedImage && m_selectedImage->knownToBeOpaque(renderer);
 }

Modified: trunk/Source/WebCore/rendering/style/StyleMultiImage.h (272420 => 272421)


--- trunk/Source/WebCore/rendering/style/StyleMultiImage.h	2021-02-05 17:38:19 UTC (rev 272420)
+++ trunk/Source/WebCore/rendering/style/StyleMultiImage.h	2021-02-05 18:12:24 UTC (rev 272421)
@@ -61,7 +61,7 @@
     void removeClient(RenderElement&) final;
     RefPtr<Image> image(RenderElement*, const FloatSize&) const final;
     float imageScaleFactor() const final;
-    bool knownToBeOpaque(const RenderElement*) const final;
+    bool knownToBeOpaque(const RenderElement&) const final;
     const StyleImage* selectedImage() const final { return m_selectedImage.get(); }
     StyleImage* selectedImage() final { return m_selectedImage.get(); }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to