Title: [283340] trunk/Source/WebCore
- Revision
- 283340
- Author
- commit-qu...@webkit.org
- Date
- 2021-09-30 14:20:32 -0700 (Thu, 30 Sep 2021)
Log Message
Move canCompositeClipPath to RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=231014
Patch by Rob Buis <rb...@igalia.com> on 2021-09-30
Reviewed by Simon Fraser.
Move canCompositeClipPath to RenderLayer since the
code almost exclusively deals with layers. Also
remove unneeded ASSERTs.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::adjustStyleDifference const):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::willCompositeClipPath const):
* rendering/RenderLayer.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::canCompositeClipPath): Deleted.
* rendering/RenderLayerCompositor.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (283339 => 283340)
--- trunk/Source/WebCore/ChangeLog 2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/ChangeLog 2021-09-30 21:20:32 UTC (rev 283340)
@@ -1,3 +1,23 @@
+2021-09-30 Rob Buis <rb...@igalia.com>
+
+ Move canCompositeClipPath to RenderLayer
+ https://bugs.webkit.org/show_bug.cgi?id=231014
+
+ Reviewed by Simon Fraser.
+
+ Move canCompositeClipPath to RenderLayer since the
+ code almost exclusively deals with layers. Also
+ remove unneeded ASSERTs.
+
+ * rendering/RenderElement.cpp:
+ (WebCore::RenderElement::adjustStyleDifference const):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::willCompositeClipPath const):
+ * rendering/RenderLayer.h:
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::canCompositeClipPath): Deleted.
+ * rendering/RenderLayerCompositor.h:
+
2021-09-30 Devin Rousso <drou...@apple.com>
[iOS][GPU Process] support `<attachment>`
Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (283339 => 283340)
--- trunk/Source/WebCore/rendering/RenderElement.cpp 2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp 2021-09-30 21:20:32 UTC (rev 283340)
@@ -306,10 +306,7 @@
}
if (contextSensitiveProperties & StyleDifferenceContextSensitiveProperty::ClipPath) {
- if (hasLayer()
- && downcast<RenderLayerModelObject>(*this).layer()->isComposited()
- && hasClipPath()
- && RenderLayerCompositor::canCompositeClipPath(*downcast<RenderLayerModelObject>(*this).layer()))
+ if (hasLayer() && downcast<RenderLayerModelObject>(*this).layer()->willCompositeClipPath())
diff = std::max(diff, StyleDifference::RecompositeLayer);
else
diff = std::max(diff, StyleDifference::Repaint);
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (283339 => 283340)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2021-09-30 21:20:32 UTC (rev 283340)
@@ -682,6 +682,21 @@
sc->dirtyZOrderLists();
}
+bool RenderLayer::willCompositeClipPath() const
+{
+ if (!isComposited())
+ return false;
+
+ auto* clipPath = renderer().style().clipPath();
+ if (!clipPath)
+ return false;
+
+ if (renderer().hasMask())
+ return false;
+
+ return (clipPath->type() != ClipPathOperation::Shape || clipPath->type() == ClipPathOperation::Shape) && GraphicsLayer::supportsLayerType(GraphicsLayer::Type::Shape);
+}
+
void RenderLayer::dirtyNormalFlowList()
{
ASSERT(layerListMutationAllowed());
Modified: trunk/Source/WebCore/rendering/RenderLayer.h (283339 => 283340)
--- trunk/Source/WebCore/rendering/RenderLayer.h 2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/rendering/RenderLayer.h 2021-09-30 21:20:32 UTC (rev 283340)
@@ -238,6 +238,8 @@
void setLayerListMutationAllowed(bool flag) { m_layerListMutationAllowed = flag; }
#endif
+ bool willCompositeClipPath() const;
+
protected:
void destroy();
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (283339 => 283340)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2021-09-30 21:20:32 UTC (rev 283340)
@@ -1760,18 +1760,6 @@
return false;
}
-bool RenderLayerCompositor::canCompositeClipPath(const RenderLayer& layer)
-{
- ASSERT(layer.isComposited());
- ASSERT(layer.renderer().style().clipPath());
-
- if (layer.renderer().hasMask())
- return false;
-
- auto& clipPath = *layer.renderer().style().clipPath();
- return (clipPath.type() != ClipPathOperation::Shape || clipPath.type() == ClipPathOperation::Shape) && GraphicsLayer::supportsLayerType(GraphicsLayer::Type::Shape);
-}
-
// FIXME: remove and never ask questions about reflection layers.
static RenderLayerModelObject& rendererForCompositingTests(const RenderLayer& layer)
{
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.h (283339 => 283340)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2021-09-30 21:20:32 UTC (rev 283340)
@@ -245,8 +245,6 @@
void layerStyleChanged(StyleDifference, RenderLayer&, const RenderStyle* oldStyle);
- static bool canCompositeClipPath(const RenderLayer&);
-
// Get the nearest ancestor layer that has overflow or clip, but is not a stacking context
RenderLayer* enclosingNonStackingClippingLayer(const RenderLayer&) const;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes