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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.cpp

Issue 2404213004: Implement incremental paint property tree rebuilding (Closed)
Patch Set: Cleanup needsUpdate finder construction, tighten reasons for updating a property subtree, misc clea… Created 4 years, 1 month 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 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc.
7 * All rights reserved. 7 * All rights reserved.
8 * Copyright (C) 2009 Google Inc. All rights reserved. 8 * Copyright (C) 2009 Google Inc. All rights reserved.
9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. 9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved.
10 * (http://www.torchmobile.com/) 10 * (http://www.torchmobile.com/)
(...skipping 1461 matching lines...) Expand 10 before | Expand all | Expand 10 after
1472 // Text nodes share style with their parents but the checked styles don't 1472 // Text nodes share style with their parents but the checked styles don't
1473 // apply to them, hence the !isText() check. 1473 // apply to them, hence the !isText() check.
1474 if (!isText() && (diff.transformChanged() || diff.opacityChanged() || 1474 if (!isText() && (diff.transformChanged() || diff.opacityChanged() ||
1475 diff.zIndexChanged() || diff.filterChanged() || 1475 diff.zIndexChanged() || diff.filterChanged() ||
1476 diff.backdropFilterChanged())) { 1476 diff.backdropFilterChanged())) {
1477 // We don't need to invalidate paint of objects on SPv2 when only paint 1477 // We don't need to invalidate paint of objects on SPv2 when only paint
1478 // property or paint order change. Mark the painting layer needing repaint 1478 // property or paint order change. Mark the painting layer needing repaint
1479 // for changed paint property or paint order. Raster invalidation will be 1479 // for changed paint property or paint order. Raster invalidation will be
1480 // issued if needed during paint. 1480 // issued if needed during paint.
1481 ObjectPaintInvalidator(*this).slowSetPaintingLayerNeedsRepaint(); 1481 ObjectPaintInvalidator(*this).slowSetPaintingLayerNeedsRepaint();
1482
1483 // When transform, opacity, etc. change, paint properties will also change
1484 // so we need to mark this object as needing an update.
1485 // TODO(pdr): Also update in the non-spv2 codepath?
1486 getMutableForPainting().setNeedsPaintPropertyUpdate();
1482 } 1487 }
1483 } else { 1488 } else {
1484 // If transform changed, and the layer does not paint into its own separate 1489 // If transform changed, and the layer does not paint into its own separate
1485 // backing, then we need to invalidate paints. 1490 // backing, then we need to invalidate paints.
1486 if (diff.transformChanged()) { 1491 if (diff.transformChanged()) {
1487 // Text nodes share style with their parents but transforms don't apply to 1492 // Text nodes share style with their parents but transforms don't apply to
1488 // them, hence the !isText() check. 1493 // them, hence the !isText() check.
1489 if (!isText() && (!hasLayer() || 1494 if (!isText() && (!hasLayer() ||
1490 !toLayoutBoxModelObject(this) 1495 !toLayoutBoxModelObject(this)
1491 ->layer() 1496 ->layer()
(...skipping 2065 matching lines...) Expand 10 before | Expand all | Expand 10 after
3557 const blink::LayoutObject* root = object1; 3562 const blink::LayoutObject* root = object1;
3558 while (root->parent()) 3563 while (root->parent())
3559 root = root->parent(); 3564 root = root->parent();
3560 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3565 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3561 } else { 3566 } else {
3562 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)"); 3567 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)");
3563 } 3568 }
3564 } 3569 }
3565 3570
3566 #endif 3571 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutObject.h ('k') | third_party/WebKit/Source/core/paint/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698