| Index: cc/trees/property_tree.h
|
| diff --git a/cc/trees/property_tree.h b/cc/trees/property_tree.h
|
| index 43dcda590751f4458f6cc876a3619804871d4857..fc8f5a2280bbdd3c578e92bc465bb9f6bf407cd0 100644
|
| --- a/cc/trees/property_tree.h
|
| +++ b/cc/trees/property_tree.h
|
| @@ -16,9 +16,10 @@ namespace cc {
|
|
|
| template <typename T>
|
| struct CC_EXPORT TreeNode {
|
| - TreeNode() : id(-1), parent_id(-1), data() {}
|
| + TreeNode() : id(-1), parent_id(-1), owner_id(-1), data() {}
|
| int id;
|
| int parent_id;
|
| + int owner_id;
|
| T data;
|
| };
|
|
|
| @@ -82,6 +83,10 @@ struct CC_EXPORT TransformNodeData {
|
| // This is used as a fallback when we either cannot adjust raster scale or if
|
| // the raster scale cannot be extracted from the screen space transform.
|
| float layer_scale_factor;
|
| +
|
| + // TODO(vollick): will be moved when accelerated effects are implemented.
|
| + float post_local_scale_factor;
|
| +
|
| gfx::Vector2dF sublayer_scale;
|
|
|
| // TODO(vollick): will be moved when accelerated effects are implemented.
|
| @@ -92,10 +97,16 @@ struct CC_EXPORT TransformNodeData {
|
| // This value stores the snapped amount for this purpose.
|
| gfx::Vector2dF scroll_snap;
|
|
|
| + // TODO(vollick): will be moved when accelerated effects are implemented.
|
| + gfx::Vector2dF parent_offset;
|
| +
|
| void set_to_parent(const gfx::Transform& transform) {
|
| to_parent = transform;
|
| is_invertible = to_parent.IsInvertible();
|
| }
|
| +
|
| + void update_post_local_transform(const gfx::PointF& position,
|
| + const gfx::Point3F& transform_origin);
|
| };
|
|
|
| typedef TreeNode<TransformNodeData> TransformNode;
|
| @@ -124,19 +135,15 @@ class CC_EXPORT PropertyTree {
|
| T* Node(int i) { return i > -1 ? &nodes_[i] : nullptr; }
|
| const T* Node(int i) const { return i > -1 ? &nodes_[i] : nullptr; }
|
|
|
| - T* parent(const T* t) {
|
| - return t->parent_id > -1 ? Node(t->parent_id) : nullptr;
|
| - }
|
| - const T* parent(const T* t) const {
|
| - return t->parent_id > -1 ? Node(t->parent_id) : nullptr;
|
| - }
|
| + T* parent(const T* t) { return Node(t->parent_id); }
|
| + const T* parent(const T* t) const { return Node(t->parent_id); }
|
|
|
| T* back() { return size() ? &nodes_[nodes_.size() - 1] : nullptr; }
|
| const T* back() const {
|
| return size() ? &nodes_[nodes_.size() - 1] : nullptr;
|
| }
|
|
|
| - void clear() { nodes_.clear(); }
|
| + void clear();
|
| size_t size() const { return nodes_.size(); }
|
|
|
| private:
|
| @@ -213,9 +220,12 @@ class CC_EXPORT OpacityTree final : public PropertyTree<OpacityNode> {};
|
|
|
| class CC_EXPORT PropertyTrees final {
|
| public:
|
| + PropertyTrees();
|
| +
|
| TransformTree transform_tree;
|
| OpacityTree opacity_tree;
|
| ClipTree clip_tree;
|
| + bool needs_rebuild;
|
| };
|
|
|
| } // namespace cc
|
|
|