-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[LBSE] Implement support for filters #25087
[LBSE] Implement support for filters #25087
Conversation
EWS run on previous version of this PR (hash 464cfe5) |
I think this fixes the DRT output : void writeSVGContainer(TextStream& ts, const LegacyRenderSVGContainer& container, OptionSet behavior)
It may be a good idea to do the RenderObject.h renamings and related changes in a separate PR to make it easier to concentrate on the core bits of this PR. |
464cfe5
to
215792b
Compare
EWS run on previous version of this PR (hash 215792b) |
@shallawa just in case you missed it, there is a FIXME for pattern support in SVGBoundingBoxComputation::adjustBoxForClippingAndEffects. Implementing it may fix some of the remaining filter test failures. |
215792b
to
9554d69
Compare
EWS run on previous version of this PR (hash 9554d69) |
if (!parent) | ||
return; | ||
|
||
if (effect) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if it makes sense to check effect as first thing, otherwise we do the cast for nothing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes makes sense. Will do it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! Sorry that it took so long to comment, I was on sick leave the last week.
Can you include a TestExpectations
update @shallawa? I'd like to see how many tests are fixed :-) If that is also present, I'd r+ it, and I think we should continue in follow-up PRs.
Great job!
9554d69
to
ecde857
Compare
EWS run on previous version of this PR (hash ecde857) |
ecde857
to
07f6d40
Compare
EWS run on previous version of this PR (hash 07f6d40) |
Great that you're back on this topic @shallawa - can you update us what changed? I just had a quick glance, and think you only rebased it, right? A few of the unresolved comments from March still apply. |
07f6d40
to
582de37
Compare
EWS run on previous version of this PR (hash 582de37) |
Yes. Initially I rebased the the PR
Then I addressed all the review comments. Can you please have a second look? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
r=me - very happy to see the initial fitter support landing!
Yes, thanks Said! |
582de37
to
5195f54
Compare
EWS run on current version of this PR (hash 5195f54) |
5195f54
to
6fd0e5c
Compare
https://bugs.webkit.org/show_bug.cgi?id=265140 rdar://118834403 Reviewed by Nikolas Zimmermann. Implement support for filters, based on the new paint server logic. The SVG <filter> element will be handled as CSS filter with one ReferenceFilterOperation. In future patches, the geometry of CSSFilter will be similar to the geometry of the current SVGFilter. * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/rendering/RenderLayerFilters.cpp: (WebCore::RenderLayerFilters::beginFilterEffect): * Source/WebCore/rendering/RenderLayerModelObject.cpp: (WebCore::RenderLayerModelObject::svgFilterResourceFromStyle const): * Source/WebCore/rendering/RenderLayerModelObject.h: * Source/WebCore/rendering/RenderObject.h: (WebCore::RenderObject::isRenderSVGHiddenContainer const): (WebCore::RenderObject::isLegacyRenderSVGResourceFilter const): (WebCore::RenderObject::isRenderSVGResourcePaintServer const): (WebCore::RenderObject::isLegacyRenderSVGResourceFilterPrimitive const): (WebCore::RenderObject::isRenderOrLegacyRenderSVGResourceFilterPrimitive const): * Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp: Copied from Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilterPrimitive.h. (WebCore::RenderSVGResourceFilter::RenderSVGResourceFilter): (WebCore::RenderSVGResourceFilter::resourceBoundingBox): (WebCore::RenderSVGResourceFilter::invalidateFilter): * Source/WebCore/rendering/svg/RenderSVGResourceFilter.h: Copied from Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilterPrimitive.h. * Source/WebCore/rendering/svg/RenderSVGResourceFilterInlines.h: Added. (WebCore::RenderSVGResourceFilter::filterElement const): (WebCore::RenderSVGResourceFilter::protectedFilterElement const): (WebCore::RenderSVGResourceFilter::filterUnits const): (WebCore::RenderSVGResourceFilter::primitiveUnits const): * Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.cpp: Copied from Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilterPrimitive.h. (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive): (WebCore::RenderSVGResourceFilterPrimitive::markFilterEffectForRepaint): (WebCore::RenderSVGResourceFilterPrimitive::markFilterEffectForRebuild): * Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h: Copied from Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilterPrimitive.h. * Source/WebCore/rendering/svg/RenderSVGResourcePaintServer.h: (WebCore::RenderSVGResourcePaintServer::prepareFillOperation): (WebCore::RenderSVGResourcePaintServer::prepareStrokeOperation): * Source/WebCore/rendering/svg/SVGBoundingBoxComputation.cpp: (WebCore::SVGBoundingBoxComputation::adjustBoxForClippingAndEffects const): * Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp: (WebCore::writeSVGContainer): * Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.cpp: (WebCore::LegacyRenderSVGResourceFilter::LegacyRenderSVGResourceFilter): * Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.h: (isType): * Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilterPrimitive.cpp: (WebCore::LegacyRenderSVGResourceFilterPrimitive::LegacyRenderSVGResourceFilterPrimitive): * Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilterPrimitive.h: * Source/WebCore/rendering/svg/legacy/SVGResourcesCache.cpp: (WebCore::SVGResourcesCache::clientStyleChanged): * Source/WebCore/svg/SVGElement.cpp: (WebCore::isSVGLayerAwareElement): * Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp: * Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp: * Source/WebCore/svg/SVGFEDropShadowElement.cpp: * Source/WebCore/svg/SVGFEGaussianBlurElement.cpp: * Source/WebCore/svg/SVGFELightElement.cpp: (WebCore::SVGFELightElement::svgAttributeChanged): * Source/WebCore/svg/SVGFEMorphologyElement.cpp: * Source/WebCore/svg/SVGFESpecularLightingElement.cpp: * Source/WebCore/svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::childrenChanged): (WebCore::SVGFilterElement::createElementRenderer): * Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp: (WebCore::SVGFilterPrimitiveStandardAttributes::primitiveAttributeChanged): (WebCore::SVGFilterPrimitiveStandardAttributes::primitiveAttributeOnChildChanged): (WebCore::SVGFilterPrimitiveStandardAttributes::markFilterEffectForRepaint): (WebCore::SVGFilterPrimitiveStandardAttributes::markFilterEffectForRebuild): (WebCore::SVGFilterPrimitiveStandardAttributes::createElementRenderer): (WebCore::SVGFilterPrimitiveStandardAttributes::invalidateFilterPrimitiveParent): * Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h: Canonical link: https://commits.webkit.org/280190@main
6fd0e5c
to
2e6697f
Compare
Committed 280190@main (2e6697f): https://commits.webkit.org/280190@main Reviewed commits have been landed. Closing PR #25087 and removing active labels. |
2e6697f
5195f54
π§ͺ api-ios