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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/paint/README.md

Issue 2137173002: [SPv2] Respect transform-style in the Blink and cc property trees. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: large merge (with https://codereview.chromium.org/2144823006) Created 4 years, 4 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 # Platform paint code 1 # Platform paint code
2 2
3 This directory contains the implementation of display lists and display 3 This directory contains the implementation of display lists and display
4 list-based painting, except for code which requires knowledge of `core/` 4 list-based painting, except for code which requires knowledge of `core/`
5 concepts, such as DOM elements and layout objects. 5 concepts, such as DOM elements and layout objects.
6 6
7 This code is owned by the [paint team][paint-team-site]. 7 This code is owned by the [paint team][paint-team-site].
8 8
9 Slimming Paint v2 is currently being implemented. Unlike Slimming Paint v1, SPv2 9 Slimming Paint v2 is currently being implemented. Unlike Slimming Paint v1, SPv2
10 represents its paint artifact not as a flat display list, but as a list of 10 represents its paint artifact not as a flat display list, but as a list of
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 which defines the coordinate space in which the content should be painted. 46 which defines the coordinate space in which the content should be painted.
47 47
48 Each transform node has: 48 Each transform node has:
49 49
50 * a 4x4 [`TransformationMatrix`](../../transforms/TransformationMatrix.h) 50 * a 4x4 [`TransformationMatrix`](../../transforms/TransformationMatrix.h)
51 * a 3-dimensional transform origin, which defines the origin relative to which 51 * a 3-dimensional transform origin, which defines the origin relative to which
52 the transformation matrix should be applied (e.g. a rotation applied with some 52 the transformation matrix should be applied (e.g. a rotation applied with some
53 transform origin will rotate the plane about that point) 53 transform origin will rotate the plane about that point)
54 * a pointer to the parent node, which defines the coordinate space relative to 54 * a pointer to the parent node, which defines the coordinate space relative to
55 which the above should be interpreted 55 which the above should be interpreted
56 * a boolean indicating whether the transform should be projected into the plane
57 of its parent (i.e., whether the total transform inherited from its parent
58 should be flattened before this node's transform is applied and propagated to
59 children)
60 * an integer rendering context ID; content whose transform nodes share a
61 rendering context ID should sort together
56 62
57 The parent node pointers link the transform nodes in a hierarchy (the *transform 63 The parent node pointers link the transform nodes in a hierarchy (the *transform
58 tree*), which defines how the transform for any painted content can be 64 tree*), which defines how the transform for any painted content can be
59 determined. 65 determined.
60 66
61 ***promo 67 ***promo
62 The painting system may create transform nodes which don't affect the position 68 The painting system may create transform nodes which don't affect the position
63 of points in the xy-plane, but which have an apparent effect only when 69 of points in the xy-plane, but which have an apparent effect only when
64 multiplied with other transformation matrices. In particular, a transform node 70 multiplied with other transformation matrices. In particular, a transform node
65 may be created to establish a perspective matrix for descendant transforms in 71 may be created to establish a perspective matrix for descendant transforms in
66 order to create the illusion of depth. 72 order to create the illusion of depth.
67 *** 73 ***
68 74
69 *** aside 75 Note that, even though CSS does not permit it in the DOM, the transform tree can
70 TODO(jbroman): Explain flattening, etc., once it exists in the paint properties. 76 have nodes whose children do not flatten their inherited transform and
71 *** 77 participate in no 3D rendering context. For example, not flattening is necessary
78 to preserve the 3D character of the perspective transform, but this does not
79 imply any 3D sorting.
72 80
73 ### Clips 81 ### Clips
74 82
75 Each paint chunk is associated with a [clip node](ClipPaintPropertyNode.h), 83 Each paint chunk is associated with a [clip node](ClipPaintPropertyNode.h),
76 which defines the raster region that will be applied on the canvas when 84 which defines the raster region that will be applied on the canvas when
77 the chunk is rastered. 85 the chunk is rastered.
78 86
79 Each clip node has: 87 Each clip node has:
80 88
81 * A float rect with (optionally) rounded corner radius. 89 * A float rect with (optionally) rounded corner radius.
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 visual and transformed rects of display items in the coordinate space of ancesto r 249 visual and transformed rects of display items in the coordinate space of ancesto r
242 [`PropertyTreeState`](PropertyTreeState.h)s. 250 [`PropertyTreeState`](PropertyTreeState.h)s.
243 251
244 The transformed rect of a display item in an ancestor `PropertyTreeState` is tha t 252 The transformed rect of a display item in an ancestor `PropertyTreeState` is tha t
245 rect, multiplied by the transforms between the display item's `PropertyTreeState ` 253 rect, multiplied by the transforms between the display item's `PropertyTreeState `
246 and the ancestors, then flattened into 2D. 254 and the ancestors, then flattened into 2D.
247 255
248 The visual rect of a display item in an ancestor `PropertyTreeState` is the inte rsection 256 The visual rect of a display item in an ancestor `PropertyTreeState` is the inte rsection
249 of all of the intermediate clips (transformed in to the ancestor state), with 257 of all of the intermediate clips (transformed in to the ancestor state), with
250 the display item's transformed rect. 258 the display item's transformed rect.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698