Changeset 236416 in webkit
- Timestamp:
- Sep 24, 2018 11:20:46 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r236415 r236416 1 2018-09-24 Simon Fraser <simon.fraser@apple.com> 2 3 feMorphology filter in CSS doesn't update when element moves 4 https://bugs.webkit.org/show_bug.cgi?id=189895 5 6 Reviewed by Dean Jackson. 7 8 Test that moves a box inside a filtered div. Masking is necessary to work 9 around bugs in feMorphology invalidation (webkit.org/b/189896). 10 11 * css3/filters/invalidate-sourceAlpha-expected.html: Added. 12 * css3/filters/invalidate-sourceAlpha.html: Added. 13 1 14 2018-09-24 Simon Fraser <simon.fraser@apple.com> 2 15 -
trunk/Source/WebCore/ChangeLog
r236415 r236416 1 2018-09-24 Simon Fraser <simon.fraser@apple.com> 2 3 feMorphology filter in CSS doesn't update when element moves 4 https://bugs.webkit.org/show_bug.cgi?id=189895 5 6 Reviewed by Dean Jackson. 7 8 SourceAlpha needs to be invalidated from clearIntermediateResults(), 9 so get it from the SVGFilterBuilder (which always creates one) and store in 10 a member variable. 11 12 Test: css3/filters/invalidate-sourceAlpha.html 13 14 * rendering/CSSFilter.cpp: 15 (WebCore::CSSFilter::buildReferenceFilter): 16 (WebCore::CSSFilter::clearIntermediateResults): 17 * rendering/CSSFilter.h: 18 * svg/graphics/filters/SVGFilterBuilder.h: 19 1 20 2018-09-24 Simon Fraser <simon.fraser@apple.com> 2 21 -
trunk/Source/WebCore/rendering/CSSFilter.cpp
r236413 r236416 41 41 #include "SVGFilterBuilder.h" 42 42 #include "SVGFilterPrimitiveStandardAttributes.h" 43 #include "SourceAlpha.h" 43 44 #include "SourceGraphic.h" 44 45 #include <algorithm> … … 112 113 113 114 auto builder = std::make_unique<SVGFilterBuilder>(&previousEffect); 115 m_sourceAlpha = builder->getEffectById(SourceAlpha::effectName()); 114 116 115 117 for (auto& effectElement : childrenOfType<SVGFilterPrimitiveStandardAttributes>(*filter)) { … … 356 358 { 357 359 m_sourceGraphic->clearResult(); 360 if (m_sourceAlpha) 361 m_sourceAlpha->clearResult(); 358 362 for (auto& effect : m_effects) 359 363 effect->clearResult(); -
trunk/Source/WebCore/rendering/CSSFilter.h
r235644 r236416 38 38 class ReferenceFilterOperation; 39 39 class RenderElement; 40 class SourceAlpha; 40 41 class SourceGraphic; 41 42 … … 91 92 Vector<Ref<FilterEffect>> m_effects; 92 93 Ref<SourceGraphic> m_sourceGraphic; 94 RefPtr<FilterEffect> m_sourceAlpha; 93 95 94 96 IntRectExtent m_outsets; -
trunk/Source/WebCore/svg/graphics/filters/SVGFilterBuilder.h
r226373 r236416 47 47 void add(const AtomicString& id, RefPtr<FilterEffect>); 48 48 49 RefPtr<FilterEffect> getEffectById(const AtomicString& id) const;49 RefPtr<FilterEffect> getEffectById(const AtomicString&) const; 50 50 FilterEffect* lastEffect() const { return m_lastEffect.get(); } 51 51
Note: See TracChangeset
for help on using the changeset viewer.