Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(250)

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp

Issue 2625133003: Handle geometry effects of filters in GeometryMapper (Closed)
Patch Set: Rebaseline tests Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/paint/PaintPropertyTreeBuilder.h" 5 #include "core/paint/PaintPropertyTreeBuilder.h"
6 6
7 #include "core/dom/DOMNodeIds.h" 7 #include "core/dom/DOMNodeIds.h"
8 #include "core/frame/FrameView.h" 8 #include "core/frame/FrameView.h"
9 #include "core/frame/LocalFrame.h" 9 #include "core/frame/LocalFrame.h"
10 #include "core/frame/Settings.h" 10 #include "core/frame/Settings.h"
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 style.hasCurrentFilterAnimation() || 520 style.hasCurrentFilterAnimation() ||
521 style.hasCurrentBackdropFilterAnimation()) 521 style.hasCurrentBackdropFilterAnimation())
522 ? createDomNodeBasedCompositorElementId(object) 522 ? createDomNodeBasedCompositorElementId(object)
523 : CompositorElementId(); 523 : CompositorElementId();
524 524
525 if (effectNodeNeeded) { 525 if (effectNodeNeeded) {
526 auto& properties = object.getMutableForPainting().ensurePaintProperties(); 526 auto& properties = object.getMutableForPainting().ensurePaintProperties();
527 context.forceSubtreeUpdate |= properties.updateEffect( 527 context.forceSubtreeUpdate |= properties.updateEffect(
528 context.currentEffect, context.current.transform, outputClip, 528 context.currentEffect, context.current.transform, outputClip,
529 std::move(filter), opacity, blendMode, compositingReasons, 529 std::move(filter), opacity, blendMode, compositingReasons,
530 compositorElementId); 530 compositorElementId, FloatPoint(context.current.paintOffset));
531 } else { 531 } else {
532 if (auto* properties = object.getMutableForPainting().paintProperties()) 532 if (auto* properties = object.getMutableForPainting().paintProperties())
533 context.forceSubtreeUpdate |= properties->clearEffect(); 533 context.forceSubtreeUpdate |= properties->clearEffect();
534 } 534 }
535 } 535 }
536 536
537 const auto* properties = object.paintProperties(); 537 const auto* properties = object.paintProperties();
538 if (properties && properties->effect()) { 538 if (properties && properties->effect()) {
539 context.currentEffect = properties->effect(); 539 context.currentEffect = properties->effect();
540 if (!properties->effect()->filter().isEmpty()) { 540 if (!properties->effect()->filter().isEmpty()) {
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 void PaintPropertyTreeBuilder::updatePropertiesForSelf( 958 void PaintPropertyTreeBuilder::updatePropertiesForSelf(
959 const LayoutObject& object, 959 const LayoutObject& object,
960 PaintPropertyTreeBuilderContext& context) { 960 PaintPropertyTreeBuilderContext& context) {
961 #if DCHECK_IS_ON() 961 #if DCHECK_IS_ON()
962 FindObjectPropertiesNeedingUpdateScope checkNeedsUpdateScope(object, context); 962 FindObjectPropertiesNeedingUpdateScope checkNeedsUpdateScope(object, context);
963 #endif 963 #endif
964 964
965 if (object.isBoxModelObject() || object.isSVG()) { 965 if (object.isBoxModelObject() || object.isSVG()) {
966 updatePaintOffsetTranslation(object, context); 966 updatePaintOffsetTranslation(object, context);
967 updateTransform(object, context); 967 updateTransform(object, context);
968 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) 968 updateEffect(object, context);
969 updateEffect(object, context);
970 updateCssClip(object, context); 969 updateCssClip(object, context);
971 updateLocalBorderBoxContext(object, context); 970 updateLocalBorderBoxContext(object, context);
972 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) 971 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled())
973 updateScrollbarPaintOffset(object, context); 972 updateScrollbarPaintOffset(object, context);
974 } 973 }
975 974
976 if (object.needsPaintPropertyUpdate() || context.forceSubtreeUpdate) { 975 if (object.needsPaintPropertyUpdate() || context.forceSubtreeUpdate) {
977 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled() && 976 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled() &&
978 object.paintOffset() != context.current.paintOffset) { 977 object.paintOffset() != context.current.paintOffset) {
979 object.getMutableForPainting().setShouldDoFullPaintInvalidation( 978 object.getMutableForPainting().setShouldDoFullPaintInvalidation(
(...skipping 16 matching lines...) Expand all
996 updateOverflowClip(object, context); 995 updateOverflowClip(object, context);
997 updatePerspective(object, context); 996 updatePerspective(object, context);
998 updateSvgLocalToBorderBoxTransform(object, context); 997 updateSvgLocalToBorderBoxTransform(object, context);
999 updateScrollAndScrollTranslation(object, context); 998 updateScrollAndScrollTranslation(object, context);
1000 updateOutOfFlowContext(object, context); 999 updateOutOfFlowContext(object, context);
1001 1000
1002 context.forceSubtreeUpdate |= object.subtreeNeedsPaintPropertyUpdate(); 1001 context.forceSubtreeUpdate |= object.subtreeNeedsPaintPropertyUpdate();
1003 } 1002 }
1004 1003
1005 } // namespace blink 1004 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698