Diff
Modified: trunk/Source/WebCore/ChangeLog (281238 => 281239)
--- trunk/Source/WebCore/ChangeLog 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/ChangeLog 2021-08-19 15:51:31 UTC (rev 281239)
@@ -1,5 +1,76 @@
2021-08-19 Simon Fraser <[email protected]>
+ Use an OptionSet<MapCoordinatesMode> in place of MapCoordinatesFlags
+ https://bugs.webkit.org/show_bug.cgi?id=229170
+
+ Reviewed by Antti Koivisto.
+
+ Replace MapCoordinatesFlags with OptionSet<MapCoordinatesMode>. No behavior
+ change.
+
+ * html/HTMLAnchorElement.cpp:
+ (WebCore::appendServerMapMousePosition):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::mapLocalToContainer const):
+ (WebCore::RenderBox::mapAbsoluteToLocalPoint const):
+ * rendering/RenderBox.h:
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint const):
+ * rendering/RenderBoxModelObject.h:
+ * rendering/RenderFragmentedFlow.cpp:
+ (WebCore::RenderFragmentedFlow::mapLocalToContainer const):
+ * rendering/RenderFragmentedFlow.h:
+ * rendering/RenderGeometryMap.cpp:
+ (WebCore::RenderGeometryMap::RenderGeometryMap):
+ (WebCore::RenderGeometryMap::pushMappingsToAncestor):
+ * rendering/RenderGeometryMap.h:
+ (WebCore::RenderGeometryMap::mapCoordinatesFlags const):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::mapLocalToContainer const):
+ * rendering/RenderInline.h:
+ * rendering/RenderMultiColumnFlow.cpp:
+ (WebCore::RenderMultiColumnFlow::mapAbsoluteToLocalPoint const):
+ * rendering/RenderMultiColumnFlow.h:
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::absoluteBoundingBoxRect const):
+ (WebCore::RenderObject::localToAbsolute const):
+ (WebCore::RenderObject::absoluteToLocal const):
+ (WebCore::RenderObject::absoluteToLocalQuad const):
+ (WebCore::RenderObject::mapLocalToContainer const):
+ (WebCore::RenderObject::mapAbsoluteToLocalPoint const):
+ (WebCore::RenderObject::localToContainerQuad const):
+ (WebCore::RenderObject::localToContainerPoint const):
+ * rendering/RenderObject.h:
+ (WebCore::RenderObject::localToAbsolute):
+ (WebCore::RenderObject::absoluteToLocal):
+ (WebCore::RenderObject::localToAbsoluteQuad const):
+ * rendering/RenderObjectEnums.h:
+ * rendering/RenderTheme.cpp:
+ (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton const):
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::mapLocalToContainer const):
+ (WebCore::RenderView::mapAbsoluteToLocalPoint const):
+ * rendering/RenderView.h:
+ * rendering/svg/RenderSVGForeignObject.cpp:
+ (WebCore::RenderSVGForeignObject::mapLocalToContainer const):
+ * rendering/svg/RenderSVGForeignObject.h:
+ * rendering/svg/RenderSVGInline.cpp:
+ (WebCore::RenderSVGInline::mapLocalToContainer const):
+ * rendering/svg/RenderSVGInline.h:
+ * rendering/svg/RenderSVGModelObject.cpp:
+ (WebCore::RenderSVGModelObject::mapLocalToContainer const):
+ * rendering/svg/RenderSVGModelObject.h:
+ * rendering/svg/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::mapLocalToContainer const):
+ * rendering/svg/RenderSVGRoot.h:
+ * rendering/svg/RenderSVGText.cpp:
+ (WebCore::RenderSVGText::mapLocalToContainer const):
+ * rendering/svg/RenderSVGText.h:
+ * rendering/svg/SVGRenderSupport.cpp:
+ (WebCore::SVGRenderSupport::mapLocalToContainer):
+
+2021-08-19 Simon Fraser <[email protected]>
+
Remove duplicate LayerTreeAsText enums and use an OptionSet<>
https://bugs.webkit.org/show_bug.cgi?id=229226
Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (281238 => 281239)
--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -171,7 +171,7 @@
if (!is<RenderImage>(renderer))
return;
- // FIXME: This should probably pass UseTransforms in the MapCoordinatesFlags.
+ // FIXME: This should probably pass UseTransforms in the OptionSet<MapCoordinatesMode>.
auto absolutePosition = downcast<RenderImage>(*renderer).absoluteToLocal(FloatPoint(mouseEvent.pageX(), mouseEvent.pageY()));
url.append('?', std::lround(absolutePosition.x()), ',', std::lround(absolutePosition.y()));
}
Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderBox.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -2222,7 +2222,7 @@
return cb->adjustContentBoxLogicalHeightForBoxSizing(LayoutUnit(logicalHeightLength.value()));
}
-void RenderBox::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderBox::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, OptionSet<MapCoordinatesMode> mode, bool* wasFixed) const
{
if (ancestorContainer == this)
return;
@@ -2245,17 +2245,17 @@
// If this box has a transform, it acts as a fixed position container for fixed descendants,
// and may itself also be fixed position. So propagate 'fixed' up only if this box is fixed position.
if (hasTransform() && !isFixedPos)
- mode &= ~IsFixed;
+ mode.remove(IsFixed);
else if (isFixedPos)
- mode |= IsFixed;
+ mode.add(IsFixed);
if (wasFixed)
- *wasFixed = mode & IsFixed;
+ *wasFixed = mode.contains(IsFixed);
LayoutSize containerOffset = offsetFromContainer(*container, LayoutPoint(transformState.mappedPoint()));
- bool preserve3D = mode & UseTransforms && (container->style().preserves3D() || style().preserves3D());
- if (mode & UseTransforms && shouldUseTransformFromContainer(container)) {
+ bool preserve3D = mode.contains(UseTransforms) && (container->style().preserves3D() || style().preserves3D());
+ if (mode.contains(UseTransforms) && shouldUseTransformFromContainer(container)) {
TransformationMatrix t;
getTransformFromContainer(container, containerOffset, t);
transformState.applyTransform(t, preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
@@ -2270,7 +2270,7 @@
return;
}
- mode &= ~ApplyContainerFlip;
+ mode.remove(ApplyContainerFlip);
container->mapLocalToContainer(ancestorContainer, transformState, mode, wasFixed);
}
@@ -2310,15 +2310,15 @@
return ancestorSkipped ? ancestorToStopAt : container;
}
-void RenderBox::mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState& transformState) const
+void RenderBox::mapAbsoluteToLocalPoint(OptionSet<MapCoordinatesMode> mode, TransformState& transformState) const
{
bool isFixedPos = isFixedPositioned();
if (hasTransform() && !isFixedPos) {
// If this box has a transform, it acts as a fixed position container for fixed descendants,
// and may itself also be fixed position. So propagate 'fixed' up only if this box is fixed position.
- mode &= ~IsFixed;
+ mode.remove(IsFixed);
} else if (isFixedPos)
- mode |= IsFixed;
+ mode.add(IsFixed);
RenderBoxModelObject::mapAbsoluteToLocalPoint(mode, transformState);
}
Modified: trunk/Source/WebCore/rendering/RenderBox.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderBox.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderBox.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -697,9 +697,9 @@
virtual bool shouldComputeSizeAsReplaced() const { return isReplaced() && !isInlineBlockOrInlineTable(); }
- void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, OptionSet<MapCoordinatesMode>, bool* wasFixed) const override;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject*, RenderGeometryMap&) const override;
- void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const override;
+ void mapAbsoluteToLocalPoint(OptionSet<MapCoordinatesMode>, TransformState&) const override;
void paintRootBoxFillLayers(const PaintInfo&);
Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -2641,7 +2641,7 @@
return !context.getCTM().isIdentityOrTranslationOrFlipped();
}
-void RenderBoxModelObject::mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState& transformState) const
+void RenderBoxModelObject::mapAbsoluteToLocalPoint(OptionSet<MapCoordinatesMode> mode, TransformState& transformState) const
{
RenderElement* container = this->container();
if (!container)
@@ -2651,8 +2651,8 @@
LayoutSize containerOffset = offsetFromContainer(*container, LayoutPoint());
- bool preserve3D = mode & UseTransforms && (container->style().preserves3D() || style().preserves3D());
- if (mode & UseTransforms && shouldUseTransformFromContainer(container)) {
+ bool preserve3D = mode.contains(UseTransforms) && (container->style().preserves3D() || style().preserves3D());
+ if (mode.contains(UseTransforms) && shouldUseTransformFromContainer(container)) {
TransformationMatrix t;
getTransformFromContainer(container, containerOffset, t);
transformState.applyTransform(t, preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderBoxModelObject.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -218,7 +218,7 @@
virtual LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const = 0;
virtual LayoutUnit baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const = 0;
- void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const override;
+ void mapAbsoluteToLocalPoint(OptionSet<MapCoordinatesMode>, TransformState&) const override;
void setSelectionState(HighlightState) override;
Modified: trunk/Source/WebCore/rendering/RenderFragmentedFlow.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderFragmentedFlow.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderFragmentedFlow.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -937,7 +937,7 @@
return currentBlock->isHorizontalWritingMode() ? blockRect.y() : blockRect.x();
}
-void RenderFragmentedFlow::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderFragmentedFlow::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, OptionSet<MapCoordinatesMode> mode, bool* wasFixed) const
{
if (this == ancestorContainer)
return;
Modified: trunk/Source/WebCore/rendering/RenderFragmentedFlow.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderFragmentedFlow.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderFragmentedFlow.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -195,7 +195,7 @@
void clearLinesToFragmentMap();
void willBeDestroyed() override;
- void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, OptionSet<MapCoordinatesMode>, bool* wasFixed) const override;
void updateFragmentsFragmentedFlowPortionRect();
bool shouldRepaint(const LayoutRect&) const;
Modified: trunk/Source/WebCore/rendering/RenderGeometryMap.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderGeometryMap.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderGeometryMap.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -34,12 +34,8 @@
namespace WebCore {
-RenderGeometryMap::RenderGeometryMap(MapCoordinatesFlags flags)
- : m_insertionPosition(notFound)
- , m_nonUniformStepsCount(0)
- , m_transformedStepsCount(0)
- , m_fixedStepsCount(0)
- , m_mapCoordinatesFlags(flags)
+RenderGeometryMap::RenderGeometryMap(OptionSet<MapCoordinatesMode> flags)
+ : m_mapCoordinatesFlags(flags)
{
}
@@ -172,9 +168,12 @@
void RenderGeometryMap::pushMappingsToAncestor(const RenderLayer* layer, const RenderLayer* ancestorLayer, bool respectTransforms)
{
- MapCoordinatesFlags newFlags = respectTransforms ? m_mapCoordinatesFlags : m_mapCoordinatesFlags & ~UseTransforms;
- SetForScope<MapCoordinatesFlags> flagsChange(m_mapCoordinatesFlags, newFlags);
+ OptionSet<MapCoordinatesMode> newFlags = m_mapCoordinatesFlags;
+ if (!respectTransforms)
+ newFlags.remove(UseTransforms);
+ SetForScope<OptionSet<MapCoordinatesMode>> flagsChange(m_mapCoordinatesFlags, newFlags);
+
const RenderLayerModelObject& renderer = layer->renderer();
// We have to visit all the renderers to detect flipped blocks. This might defeat the gains
Modified: trunk/Source/WebCore/rendering/RenderGeometryMap.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderGeometryMap.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderGeometryMap.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -73,10 +73,10 @@
class RenderGeometryMap {
WTF_MAKE_NONCOPYABLE(RenderGeometryMap);
public:
- explicit RenderGeometryMap(MapCoordinatesFlags = UseTransforms);
+ explicit RenderGeometryMap(OptionSet<MapCoordinatesMode> = UseTransforms);
~RenderGeometryMap();
- MapCoordinatesFlags mapCoordinatesFlags() const { return m_mapCoordinatesFlags; }
+ OptionSet<MapCoordinatesMode> mapCoordinatesFlags() const { return m_mapCoordinatesFlags; }
FloatPoint absolutePoint(const FloatPoint& p) const
{
@@ -123,13 +123,13 @@
typedef Vector<RenderGeometryMapStep, 32> RenderGeometryMapSteps;
- size_t m_insertionPosition;
- int m_nonUniformStepsCount;
- int m_transformedStepsCount;
- int m_fixedStepsCount;
+ size_t m_insertionPosition { notFound };
+ int m_nonUniformStepsCount { 0 };
+ int m_transformedStepsCount { 0 };
+ int m_fixedStepsCount { 0 };
RenderGeometryMapSteps m_mapping;
LayoutSize m_accumulatedOffset;
- MapCoordinatesFlags m_mapCoordinatesFlags;
+ OptionSet<MapCoordinatesMode> m_mapCoordinatesFlags;
#if ASSERT_ENABLED
bool m_accumulatedOffsetMightBeSaturated { false };
#endif
Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderInline.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -994,7 +994,7 @@
return offset;
}
-void RenderInline::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderInline::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, OptionSet<MapCoordinatesMode> mode, bool* wasFixed) const
{
if (ancestorContainer == this)
return;
@@ -1013,18 +1013,18 @@
if (!container)
return;
- if (mode & ApplyContainerFlip && is<RenderBox>(*container)) {
+ if (mode.contains(ApplyContainerFlip) && is<RenderBox>(*container)) {
if (container->style().isFlippedBlocksWritingMode()) {
LayoutPoint centerPoint(transformState.mappedPoint());
transformState.move(downcast<RenderBox>(*container).flipForWritingMode(centerPoint) - centerPoint);
}
- mode &= ~ApplyContainerFlip;
+ mode.remove(ApplyContainerFlip);
}
LayoutSize containerOffset = offsetFromContainer(*container, LayoutPoint(transformState.mappedPoint()));
- bool preserve3D = mode & UseTransforms && (container->style().preserves3D() || style().preserves3D());
- if (mode & UseTransforms && shouldUseTransformFromContainer(container)) {
+ bool preserve3D = mode.contains(UseTransforms) && (container->style().preserves3D() || style().preserves3D());
+ if (mode.contains(UseTransforms) && shouldUseTransformFromContainer(container)) {
TransformationMatrix t;
getTransformFromContainer(container, containerOffset, t);
transformState.applyTransform(t, preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
Modified: trunk/Source/WebCore/rendering/RenderInline.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderInline.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderInline.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -132,7 +132,7 @@
std::optional<LayoutRect> computeVisibleRectInContainer(const LayoutRect&, const RenderLayerModelObject* container, VisibleRectContext) const final;
LayoutRect computeVisibleRectUsingPaintOffset(const LayoutRect&) const;
- void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, OptionSet<MapCoordinatesMode>, bool* wasFixed) const override;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
VisiblePosition positionForPoint(const LayoutPoint&, const RenderFragmentContainer*) final;
Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlow.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderMultiColumnFlow.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlow.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -282,7 +282,7 @@
return offset;
}
-void RenderMultiColumnFlow::mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState& transformState) const
+void RenderMultiColumnFlow::mapAbsoluteToLocalPoint(OptionSet<MapCoordinatesMode> mode, TransformState& transformState) const
{
// First get the transform state's point into the block flow thread's physical coordinate space.
parent()->mapAbsoluteToLocalPoint(mode, transformState);
@@ -309,8 +309,8 @@
// Once we have a good guess as to which fragment we hit tested through (and yes, this was just a heuristic, but it's
// the best we could do), then we can map from the fragment into the flow thread.
LayoutSize translationOffset = physicalTranslationFromFragmentToFlow(candidateColumnSet, candidatePoint) + candidateContainerOffset;
- bool preserve3D = mode & UseTransforms && (parent()->style().preserves3D() || style().preserves3D());
- if (mode & UseTransforms && shouldUseTransformFromContainer(parent())) {
+ bool preserve3D = mode.contains(UseTransforms) && (parent()->style().preserves3D() || style().preserves3D());
+ if (mode.contains(UseTransforms) && shouldUseTransformFromContainer(parent())) {
TransformationMatrix t;
getTransformFromContainer(parent(), translationOffset, t);
transformState.applyTransform(t, preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlow.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderMultiColumnFlow.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlow.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -89,7 +89,7 @@
bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
- void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const override;
+ void mapAbsoluteToLocalPoint(OptionSet<MapCoordinatesMode>, TransformState&) const override;
LayoutSize offsetFromContainer(RenderElement&, const LayoutPoint&, bool* offsetDependsOnPoint = nullptr) const override;
// FIXME: Eventually as column and fragment flow threads start nesting, this will end up changing.
Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderObject.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -751,7 +751,7 @@
return enclosingIntRect(unitedBoundingBoxes(quads));
}
- FloatPoint absPos = localToAbsolute(FloatPoint(), 0 /* ignore transforms */, wasFixed);
+ FloatPoint absPos = localToAbsolute(FloatPoint(), { } /* ignore transforms */, wasFixed);
Vector<IntRect> rects;
absoluteRects(rects, flooredLayoutPoint(absPos));
@@ -1286,7 +1286,7 @@
#endif // NDEBUG
-FloatPoint RenderObject::localToAbsolute(const FloatPoint& localPoint, MapCoordinatesFlags mode, bool* wasFixed) const
+FloatPoint RenderObject::localToAbsolute(const FloatPoint& localPoint, OptionSet<MapCoordinatesMode> mode, bool* wasFixed) const
{
TransformState transformState(TransformState::ApplyTransformDirection, localPoint);
mapLocalToContainer(nullptr, transformState, mode | ApplyContainerFlip, wasFixed);
@@ -1295,7 +1295,7 @@
return transformState.lastPlanarPoint();
}
-FloatPoint RenderObject::absoluteToLocal(const FloatPoint& containerPoint, MapCoordinatesFlags mode) const
+FloatPoint RenderObject::absoluteToLocal(const FloatPoint& containerPoint, OptionSet<MapCoordinatesMode> mode) const
{
TransformState transformState(TransformState::UnapplyInverseTransformDirection, containerPoint);
mapAbsoluteToLocalPoint(mode, transformState);
@@ -1304,7 +1304,7 @@
return transformState.lastPlanarPoint();
}
-FloatQuad RenderObject::absoluteToLocalQuad(const FloatQuad& quad, MapCoordinatesFlags mode) const
+FloatQuad RenderObject::absoluteToLocalQuad(const FloatQuad& quad, OptionSet<MapCoordinatesMode> mode) const
{
TransformState transformState(TransformState::UnapplyInverseTransformDirection, quad.boundingBox().center(), quad);
mapAbsoluteToLocalPoint(mode, transformState);
@@ -1312,7 +1312,7 @@
return transformState.lastPlanarQuad();
}
-void RenderObject::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderObject::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, OptionSet<MapCoordinatesMode> mode, bool* wasFixed) const
{
if (ancestorContainer == this)
return;
@@ -1323,10 +1323,10 @@
// FIXME: this should call offsetFromContainer to share code, but I'm not sure it's ever called.
LayoutPoint centerPoint(transformState.mappedPoint());
- if (mode & ApplyContainerFlip && is<RenderBox>(*parent)) {
+ if (mode.contains(ApplyContainerFlip) && is<RenderBox>(*parent)) {
if (parent->style().isFlippedBlocksWritingMode())
transformState.move(downcast<RenderBox>(parent)->flipForWritingMode(LayoutPoint(transformState.mappedPoint())) - centerPoint);
- mode &= ~ApplyContainerFlip;
+ mode.remove(ApplyContainerFlip);
}
if (is<RenderBox>(*parent))
@@ -1353,7 +1353,7 @@
return container;
}
-void RenderObject::mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState& transformState) const
+void RenderObject::mapAbsoluteToLocalPoint(OptionSet<MapCoordinatesMode> mode, TransformState& transformState) const
{
if (auto* parent = this->parent()) {
parent->mapAbsoluteToLocalPoint(mode, transformState);
@@ -1398,7 +1398,7 @@
#endif
}
-FloatQuad RenderObject::localToContainerQuad(const FloatQuad& localQuad, const RenderLayerModelObject* container, MapCoordinatesFlags mode, bool* wasFixed) const
+FloatQuad RenderObject::localToContainerQuad(const FloatQuad& localQuad, const RenderLayerModelObject* container, OptionSet<MapCoordinatesMode> mode, bool* wasFixed) const
{
// Track the point at the center of the quad's bounding box. As mapLocalToContainer() calls offsetFromContainer(),
// it will use that point as the reference point to decide which column's transform to apply in multiple-column blocks.
@@ -1409,7 +1409,7 @@
return transformState.lastPlanarQuad();
}
-FloatPoint RenderObject::localToContainerPoint(const FloatPoint& localPoint, const RenderLayerModelObject* container, MapCoordinatesFlags mode, bool* wasFixed) const
+FloatPoint RenderObject::localToContainerPoint(const FloatPoint& localPoint, const RenderLayerModelObject* container, OptionSet<MapCoordinatesMode> mode, bool* wasFixed) const
{
TransformState transformState(TransformState::ApplyTransformDirection, localPoint);
mapLocalToContainer(container, transformState, mode | ApplyContainerFlip, wasFixed);
Modified: trunk/Source/WebCore/rendering/RenderObject.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderObject.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderObject.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -529,18 +529,18 @@
WEBCORE_EXPORT RenderBlock* containingBlock() const;
RenderBlock* containingBlockForObjectInFlow() const;
- // Convert the given local point to absolute coordinates. If MapCoordinatesFlags includes UseTransforms, take transforms into account.
- WEBCORE_EXPORT FloatPoint localToAbsolute(const FloatPoint& localPoint = FloatPoint(), MapCoordinatesFlags = 0, bool* wasFixed = nullptr) const;
- FloatPoint absoluteToLocal(const FloatPoint&, MapCoordinatesFlags = 0) const;
+ // Convert the given local point to absolute coordinates. If OptionSet<MapCoordinatesMode> includes UseTransforms, take transforms into account.
+ WEBCORE_EXPORT FloatPoint localToAbsolute(const FloatPoint& localPoint = FloatPoint(), OptionSet<MapCoordinatesMode> = { }, bool* wasFixed = nullptr) const;
+ FloatPoint absoluteToLocal(const FloatPoint&, OptionSet<MapCoordinatesMode> = { }) const;
// Convert a local quad to absolute coordinates, taking transforms into account.
- FloatQuad localToAbsoluteQuad(const FloatQuad&, MapCoordinatesFlags = UseTransforms, bool* wasFixed = nullptr) const;
+ FloatQuad localToAbsoluteQuad(const FloatQuad&, OptionSet<MapCoordinatesMode> = UseTransforms, bool* wasFixed = nullptr) const;
// Convert an absolute quad to local coordinates.
- FloatQuad absoluteToLocalQuad(const FloatQuad&, MapCoordinatesFlags = UseTransforms) const;
+ FloatQuad absoluteToLocalQuad(const FloatQuad&, OptionSet<MapCoordinatesMode> = UseTransforms) const;
// Convert a local quad into the coordinate system of container, taking transforms into account.
- WEBCORE_EXPORT FloatQuad localToContainerQuad(const FloatQuad&, const RenderLayerModelObject* container, MapCoordinatesFlags = UseTransforms, bool* wasFixed = nullptr) const;
- WEBCORE_EXPORT FloatPoint localToContainerPoint(const FloatPoint&, const RenderLayerModelObject* container, MapCoordinatesFlags = UseTransforms, bool* wasFixed = nullptr) const;
+ WEBCORE_EXPORT FloatQuad localToContainerQuad(const FloatQuad&, const RenderLayerModelObject* container, OptionSet<MapCoordinatesMode> = UseTransforms, bool* wasFixed = nullptr) const;
+ WEBCORE_EXPORT FloatPoint localToContainerPoint(const FloatPoint&, const RenderLayerModelObject* container, OptionSet<MapCoordinatesMode> = UseTransforms, bool* wasFixed = nullptr) const;
// Return the offset from the container() renderer (excluding transforms). In multi-column layout,
// different offsets apply at different points, so return the offset that applies to the given point.
@@ -711,8 +711,8 @@
// Map points and quads through elements, potentially via 3d transforms. You should never need to call these directly; use
// localToAbsolute/absoluteToLocal methods instead.
- virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed = nullptr) const;
- virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const;
+ virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, OptionSet<MapCoordinatesMode>, bool* wasFixed = nullptr) const;
+ virtual void mapAbsoluteToLocalPoint(OptionSet<MapCoordinatesMode>, TransformState&) const;
// Pushes state onto RenderGeometryMap about how to map coordinates from this renderer to its container, or ancestorToStopAt (whichever is encountered first).
// Returns the renderer which was mapped to (container or ancestorToStopAt).
@@ -1133,7 +1133,7 @@
m_bitfields.setPositionedState(static_cast<int>(position));
}
-inline FloatQuad RenderObject::localToAbsoluteQuad(const FloatQuad& quad, MapCoordinatesFlags mode, bool* wasFixed) const
+inline FloatQuad RenderObject::localToAbsoluteQuad(const FloatQuad& quad, OptionSet<MapCoordinatesMode> mode, bool* wasFixed) const
{
return localToContainerQuad(quad, nullptr, mode, wasFixed);
}
Modified: trunk/Source/WebCore/rendering/RenderObjectEnums.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderObjectEnums.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderObjectEnums.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -59,6 +59,5 @@
UseTransforms = 1 << 1,
ApplyContainerFlip = 1 << 2
};
-typedef unsigned MapCoordinatesFlags;
}
Modified: trunk/Source/WebCore/rendering/RenderTheme.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderTheme.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderTheme.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -595,7 +595,7 @@
LayoutPoint RenderTheme::volumeSliderOffsetFromMuteButton(const RenderBox& muteButtonBox, const LayoutSize& size) const
{
LayoutUnit y = -size.height();
- FloatPoint absPoint = muteButtonBox.localToAbsolute(FloatPoint(muteButtonBox.offsetLeft(), y), IsFixed | UseTransforms);
+ FloatPoint absPoint = muteButtonBox.localToAbsolute(FloatPoint(muteButtonBox.offsetLeft(), y), { IsFixed, UseTransforms });
if (absPoint.y() < 0)
y = muteButtonBox.height();
return LayoutPoint(0_lu, y);
Modified: trunk/Source/WebCore/rendering/RenderView.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderView.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderView.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -237,17 +237,17 @@
return clientLogicalHeight();
}
-void RenderView::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderView::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, OptionSet<MapCoordinatesMode> mode, bool* wasFixed) const
{
// If a container was specified, and was not nullptr or the RenderView,
// then we should have found it by now.
ASSERT_ARG(ancestorContainer, !ancestorContainer || ancestorContainer == this);
- ASSERT_UNUSED(wasFixed, !wasFixed || *wasFixed == (mode & IsFixed));
+ ASSERT_UNUSED(wasFixed, !wasFixed || *wasFixed == (mode.contains(IsFixed)));
- if (mode & IsFixed)
+ if (mode.contains(IsFixed))
transformState.move(toLayoutSize(frameView().scrollPositionRespectingCustomFixedPosition()));
- if (!ancestorContainer && mode & UseTransforms && shouldUseTransformFromContainer(nullptr)) {
+ if (!ancestorContainer && mode.contains(UseTransforms) && shouldUseTransformFromContainer(nullptr)) {
TransformationMatrix t;
getTransformFromContainer(nullptr, LayoutSize(), t);
transformState.applyTransform(t);
@@ -272,7 +272,7 @@
return nullptr;
}
-void RenderView::mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState& transformState) const
+void RenderView::mapAbsoluteToLocalPoint(OptionSet<MapCoordinatesMode> mode, TransformState& transformState) const
{
if (mode & UseTransforms && shouldUseTransformFromContainer(nullptr)) {
TransformationMatrix t;
Modified: trunk/Source/WebCore/rendering/RenderView.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/RenderView.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/RenderView.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -200,9 +200,9 @@
const HashSet<const RenderBox*>& boxesWithScrollSnapPositions() { return m_boxesWithScrollSnapPositions; }
private:
- void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, OptionSet<MapCoordinatesMode>, bool* wasFixed) const override;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
- void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const override;
+ void mapAbsoluteToLocalPoint(OptionSet<MapCoordinatesMode>, TransformState&) const override;
bool requiresColumns(int desiredColumnCount) const override;
void computeColumnCountAndWidth() override;
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -204,7 +204,7 @@
return false;
}
-void RenderSVGForeignObject::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
+void RenderSVGForeignObject::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, OptionSet<MapCoordinatesMode>, bool* wasFixed) const
{
SVGRenderSupport::mapLocalToContainer(*this, ancestorContainer, transformState, wasFixed);
}
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -53,7 +53,7 @@
bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction) override;
bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
- void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, OptionSet<MapCoordinatesMode>, bool* wasFixed) const override;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
void setNeedsTransformUpdate() override { m_needsTransformUpdate = true; }
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -80,7 +80,7 @@
return SVGRenderSupport::computeFloatVisibleRectInContainer(*this, rect, container, context);
}
-void RenderSVGInline::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
+void RenderSVGInline::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, OptionSet<MapCoordinatesMode>, bool* wasFixed) const
{
SVGRenderSupport::mapLocalToContainer(*this, ancestorContainer, transformState, wasFixed);
}
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGInline.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/RenderSVGInline.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGInline.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -52,7 +52,7 @@
LayoutRect clippedOverflowRect(const RenderLayerModelObject* repaintContainer, VisibleRectContext) const final;
std::optional<FloatRect> computeFloatVisibleRectInContainer(const FloatRect&, const RenderLayerModelObject* container, VisibleRectContext) const final;
- void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const final;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, OptionSet<MapCoordinatesMode>, bool* wasFixed) const final;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const final;
void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const final;
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -57,7 +57,7 @@
return SVGRenderSupport::computeFloatVisibleRectInContainer(*this, rect, container, context);
}
-void RenderSVGModelObject::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
+void RenderSVGModelObject::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, OptionSet<MapCoordinatesMode>, bool* wasFixed) const
{
SVGRenderSupport::mapLocalToContainer(*this, ancestorContainer, transformState, wasFixed);
}
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -53,7 +53,7 @@
void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) const final;
void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override;
- void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const final;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, OptionSet<MapCoordinatesMode>, bool* wasFixed) const final;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const final;
void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -398,10 +398,10 @@
// This method expects local CSS box coordinates.
// Callers with local SVG viewport coordinates should first apply the localToBorderBoxTransform
// to convert from SVG viewport coordinates to local CSS box coordinates.
-void RenderSVGRoot::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderSVGRoot::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, OptionSet<MapCoordinatesMode> mode, bool* wasFixed) const
{
- ASSERT(mode & ~IsFixed); // We should have no fixed content in the SVG rendering tree.
- ASSERT(mode & UseTransforms); // mapping a point through SVG w/o respecting trasnforms is useless.
+ ASSERT(!mode.contains(IsFixed)); // We should have no fixed content in the SVG rendering tree.
+ ASSERT(mode.contains(UseTransforms)); // mapping a point through SVG w/o respecting transforms is useless.
RenderReplaced::mapLocalToContainer(ancestorContainer, transformState, mode | ApplyContainerFlip, wasFixed);
}
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGRoot.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/RenderSVGRoot.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGRoot.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -95,7 +95,7 @@
LayoutRect clippedOverflowRect(const RenderLayerModelObject* repaintContainer, VisibleRectContext) const override;
std::optional<FloatRect> computeFloatVisibleRectInContainer(const FloatRect&, const RenderLayerModelObject* container, VisibleRectContext) const override;
- void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, OptionSet<MapCoordinatesMode>, bool* wasFixed) const override;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
bool canBeSelectionLeaf() const override { return false; }
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -105,7 +105,7 @@
return SVGRenderSupport::computeFloatVisibleRectInContainer(*this, rect, container, context);
}
-void RenderSVGText::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
+void RenderSVGText::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, OptionSet<MapCoordinatesMode>, bool* wasFixed) const
{
SVGRenderSupport::mapLocalToContainer(*this, ancestorContainer, transformState, wasFixed);
}
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGText.h (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/RenderSVGText.h 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGText.h 2021-08-19 15:51:31 UTC (rev 281239)
@@ -81,7 +81,7 @@
std::optional<LayoutRect> computeVisibleRectInContainer(const LayoutRect&, const RenderLayerModelObject* container, VisibleRectContext) const override;
std::optional<FloatRect> computeFloatVisibleRectInContainer(const FloatRect&, const RenderLayerModelObject* container, VisibleRectContext) const override;
- void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, OptionSet<MapCoordinatesMode>, bool* wasFixed) const override;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
void willBeDestroyed() override;
Modified: trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp (281238 => 281239)
--- trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp 2021-08-19 15:47:35 UTC (rev 281238)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp 2021-08-19 15:51:31 UTC (rev 281239)
@@ -101,7 +101,7 @@
transformState.applyTransform(transform);
- MapCoordinatesFlags mode = UseTransforms;
+ OptionSet<MapCoordinatesMode> mode = UseTransforms;
parent.mapLocalToContainer(ancestorContainer, transformState, mode, wasFixed);
}