Chromium Code Reviews| Index: third_party/WebKit/Source/core/paint/README.md |
| diff --git a/third_party/WebKit/Source/core/paint/README.md b/third_party/WebKit/Source/core/paint/README.md |
| index 34d5d5712b14700197c4c57d573e17c72ec4c171..137202890c8d45be15dadddb82e8f10d5b523785 100644 |
| --- a/third_party/WebKit/Source/core/paint/README.md |
| +++ b/third_party/WebKit/Source/core/paint/README.md |
| @@ -201,19 +201,45 @@ When this happens, we invalidate all `InlineBox`es in the first line. |
| TODO(wangxianzhu): add details |
| -## [`PrePaintTreeWalk`](PrePaintTreeWalk.h) (Slimming paint v2 only) |
| +## [`PrePaintTreeWalk`](PrePaintTreeWalk.h) (Slimming Paint invalidaiton/v2 only) |
| During `InPrePaint` document lifecycle state, this class is called to walk the whole |
| layout tree, beginning from the root FrameView, across frame boundaries. We do the |
| following during the tree walk: |
| -* Building paint property tree: creates paint property tree nodes for special |
| - things in the layout tree, including but not limit to: overflow clip, transform, |
| - fixed-pos, animation, mask, filter, etc. Also sets direct compositing reasons to be |
| - used later for compositing. |
| +### Building paint property trees (`PaintPropertyTreeBuilder`](PaintPropertyTreeBuilder.h) |
| + |
| +This class is responsible for building property trees |
|
pdr.
2017/04/28 23:13:40
Nit: please fix the column wrapping.
chrishtr
2017/05/02 00:55:55
Done.
|
| +(see [the platform paint README file](../../platform/graphics/paint/README.md)). |
| + |
| +Each `PaintLayer`'s `LayoutObject` has one or more `FragmentData` objects (see |
| +below for more on fragments). Every `FragmentData` has an `ObjectPaintProperties` object if any property nodes |
| +are induced by it. For example, if the object has a transform, its `ObjectPaintProperties::Transform()` |
| +field points at the `TransformPaintPropertyNode` representing that transform. |
| + |
| +The `NeedsPaintPropertyUpdate`, `SubtreeNeedsPaintPropertyUpdate` and `DescendantNeedsPaintPropertyUpdate` |
| +dirty bits on `LayoutObject` control how much of the layout tree is traversed during each `PrePaintTreeWalk`. |
| + |
| +#### Fragments |
| + |
| +In the absence of multicolumn/pagination, there is a 1:1 correspondence betwen |
|
pdr.
2017/04/28 23:13:41
between
chrishtr
2017/05/02 00:55:55
Done
|
| +self-painting `PaintLayer`s and `FragmentData`. If there is multicolumn/pagination, there |
| +may be more fragments. If a `PaintLayer` has a property node, each of its fragments will have |
|
pdr.
2017/04/28 23:13:40
... may be more `FragmentData`s.
chrishtr
2017/05/02 00:55:55
Done.
|
| +one. The parent of a fragment's property node is the property node that belongs to the ancestor |
| +`PaintLayer` which part of the same column. For example, if there are 3 columns and both |
|
pdr.
2017/04/28 23:13:40
...which [is] part...
chrishtr
2017/05/02 00:55:56
Done.
|
| +a parent and child `PaintLayer` have a transform, there wil be 3 `FragmentData` |
|
pdr.
2017/04/28 23:13:41
will
chrishtr
2017/05/02 00:55:56
Done.
|
| +objects for the parent, 3 for the child, each `FragmentData` will have its own |
| +`TransformPaintPropertyNode`, and the child's ith fragment's transform will point to the ith |
| +parent's transform. |
| + |
| +See [`LayoutMultiColumnFlowThread.h`](../layout/LayoutMultiColumnFlowThread.h) |
| +for a much more detail about multicolumn/pagination. |
| + |
| +### Paint invalidation: `PaintInvalidator` implements a tree walk that performs |
| +paint invalidation. TODO(wangxianzhu): expand on this. |
| + |
| +# [`PaintPropertyTreeBuilder`](PaintPropertyTreeBuilder.h) (Slimming Paint invalidation only) |
| -* Paint invalidation: Not implemented yet. TODO(wangxianzhu): add details after |
| - it's implemented. |
| ## Paint result caching |