commit | a029725367d552dd068cebfad337994acd5efa10 | [log] [tgz] |
---|---|---|
author | Mason Freed <masonfreed@chromium.org> | Fri Apr 19 20:11:12 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Fri Apr 19 20:11:12 2019 |
tree | b1cedebde9222fd4ebc5fd0413dc19fc0bbe3da4 | |
parent | a33dc03fc65b5d33b94380b4f0ab879a887c480c [diff] |
Make BGPT de-composite trivial transforms With this CL, "trivial" transforms, which only produce at most a 2d translation, will be de-composited if possible (see below). They will be replaced by an offset that is set on the cc::Layer in offset_to_transform_parent. With this change, the layer offset will be stored in ForeignLayerDisplayItem, so that it can be used to update the cc::Layer, and cc::Layer::SetOffsetToTransformParent() will be used in many fewer cases directly. The conditions required to de-composite a transform are: 1. It is not the root transform node. 2. It is a 2d translation only. 3. The transform is not used for scrolling - its ScrollNode() is nullptr. 4. It has no direct compositing reasons, other than k3DTransform. Note that if it has a k3DTransform reason, check #2 above ensures that it isn't really 3D. 5. It has FlattensInheritedTransform matching that of its direct parent. 6. It has backface visibility matching its direct parent. 7. No clips have local_transform_space referring to this transform node. 8. No effects have local_transform_space referring to this transform node. 9. All child transform nodes are also able to be de-composited. Bug: 952386,938563 Change-Id: I666e1609b48046372196c3864912a59e462bea77 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1568195 Commit-Queue: Mason Freed <masonfreed@chromium.org> Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Auto-Submit: Mason Freed <masonfreed@chromium.org> Cr-Commit-Position: refs/heads/master@{#652620}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .