| Index: cc/trees/property_tree.h
|
| diff --git a/cc/trees/property_tree.h b/cc/trees/property_tree.h
|
| index 4264a1c6962fb911ae170753e3f01bf2751dce09..ac977a37108f01256c2c1bb082724819b506d945 100644
|
| --- a/cc/trees/property_tree.h
|
| +++ b/cc/trees/property_tree.h
|
| @@ -31,7 +31,8 @@ class EffectNodeData;
|
| class PropertyTree;
|
| class PropertyTrees;
|
| class ScrollNodeData;
|
| -class TranformNodeData;
|
| +class TransformNodeData;
|
| +class TransformCachedNodeData;
|
| class TransformTreeData;
|
| class TreeNode;
|
| }
|
| @@ -94,17 +95,6 @@ struct CC_EXPORT TransformNodeData {
|
|
|
| gfx::Transform to_parent;
|
|
|
| - gfx::Transform to_target;
|
| - gfx::Transform from_target;
|
| -
|
| - gfx::Transform to_screen;
|
| - gfx::Transform from_screen;
|
| -
|
| - int target_id;
|
| - // This id is used for all content that draws into a render surface associated
|
| - // with this transform node.
|
| - int content_target_id;
|
| -
|
| // This is the node with respect to which source_offset is defined. This will
|
| // not be needed once layerization moves to cc, but is needed in order to
|
| // efficiently update the transform tree for changes to position in the layer
|
| @@ -213,6 +203,26 @@ struct CC_EXPORT TransformNodeData {
|
| void AsValueInto(base::trace_event::TracedValue* value) const;
|
| };
|
|
|
| +struct CC_EXPORT TransformCachedNodeData {
|
| + TransformCachedNodeData();
|
| + TransformCachedNodeData(const TransformCachedNodeData& other);
|
| + ~TransformCachedNodeData();
|
| +
|
| + gfx::Transform from_target;
|
| + gfx::Transform to_target;
|
| + gfx::Transform from_screen;
|
| + gfx::Transform to_screen;
|
| + int target_id;
|
| + // This id is used for all content that draws into a render surface associated
|
| + // with this transform node.
|
| + int content_target_id;
|
| +
|
| + bool operator==(const TransformCachedNodeData& other) const;
|
| +
|
| + void ToProtobuf(proto::TransformCachedNodeData* proto) const;
|
| + void FromProtobuf(const proto::TransformCachedNodeData& proto);
|
| +};
|
| +
|
| typedef TreeNode<TransformNodeData> TransformNode;
|
|
|
| struct CC_EXPORT ClipNodeData {
|
| @@ -406,6 +416,8 @@ class CC_EXPORT TransformTree final : public PropertyTree<TransformNode> {
|
|
|
| bool operator==(const TransformTree& other) const;
|
|
|
| + int Insert(const TransformNode& tree_node, int parent_id);
|
| +
|
| void clear();
|
|
|
| // Computes the change of basis transform from node |source_id| to |dest_id|.
|
| @@ -505,6 +517,28 @@ class CC_EXPORT TransformTree final : public PropertyTree<TransformNode> {
|
| return nodes_affected_by_outer_viewport_bounds_delta_;
|
| }
|
|
|
| + const gfx::Transform& FromTarget(int node_id) const;
|
| + void SetFromTarget(int node_id, const gfx::Transform& transform);
|
| +
|
| + const gfx::Transform& ToTarget(int node_id) const;
|
| + void SetToTarget(int node_id, const gfx::Transform& transform);
|
| +
|
| + const gfx::Transform& FromScreen(int node_id) const;
|
| + void SetFromScreen(int node_id, const gfx::Transform& transform);
|
| +
|
| + const gfx::Transform& ToScreen(int node_id) const;
|
| + void SetToScreen(int node_id, const gfx::Transform& transform);
|
| +
|
| + int TargetId(int node_id) const;
|
| + void SetTargetId(int node_id, int target_id);
|
| +
|
| + int ContentTargetId(int node_id) const;
|
| + void SetContentTargetId(int node_id, int content_target_id);
|
| +
|
| + const std::vector<TransformCachedNodeData>& cached_data() const {
|
| + return cached_data_;
|
| + }
|
| +
|
| gfx::Transform ToScreenSpaceTransformWithoutSublayerScale(int id) const;
|
|
|
| void ToProtobuf(proto::PropertyTree* proto) const;
|
| @@ -555,6 +589,7 @@ class CC_EXPORT TransformTree final : public PropertyTree<TransformNode> {
|
| float device_transform_scale_factor_;
|
| std::vector<int> nodes_affected_by_inner_viewport_bounds_delta_;
|
| std::vector<int> nodes_affected_by_outer_viewport_bounds_delta_;
|
| + std::vector<TransformCachedNodeData> cached_data_;
|
| };
|
|
|
| class CC_EXPORT ClipTree final : public PropertyTree<ClipNode> {
|
|
|