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

Unified Diff: cc/trees/property_tree.h

Issue 687873004: Introduce Property Trees (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@wip-awoloszyn2
Patch Set: . Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: cc/trees/property_tree.h
diff --git a/cc/trees/property_tree.h b/cc/trees/property_tree.h
index 24c3df1f15a9491deae0de5b2215d4bf7fce2342..98a692b4d0078033bab466acca70c9e118710a16 100644
--- a/cc/trees/property_tree.h
+++ b/cc/trees/property_tree.h
@@ -28,43 +28,41 @@ struct TreeNode {
Layer* layer;
};
-typedef TreeNode<double> OpacityTreeNode;
+typedef TreeNode<double> OpacityNode;
-struct TransformTreeNode : public TreeNode<gfx::Transform> {
- TransformTreeNode(Layer* layer, const gfx::Transform& transform);
- ~TransformTreeNode();
+struct TransformNode : public TreeNode<gfx::Transform> {
+ TransformNode(Layer* layer, const gfx::Transform& transform);
+ ~TransformNode();
// TODO(awoloszyn): can we rework the algorithm so that we don't need this
// rect?
gfx::Transform clip_transform_from_transform_parent;
gfx::RectF clip_rect;
};
-struct ClipTreeNode : public TreeNode<gfx::RectF> {
- ClipTreeNode(Layer* layer, const gfx::RectF& rect);
- ClipTreeNode(Layer* layer, const gfx::RectF& rect, bool clips);
+struct ClipNode : public TreeNode<gfx::RectF> {
+ ClipNode(Layer* layer, const gfx::RectF& rect);
+ ClipNode(Layer* layer, const gfx::RectF& rect, bool clips);
gfx::RectF GetClipForLayer(Layer* layer) const {
if(clips)
return value;
return gfx::RectF(layer->content_bounds());
}
- ~ClipTreeNode();
+ ~ClipNode();
- // ClipTreeNodes that don't clip are used to reset clipping state.
+ // ClipNodes that don't clip are used to reset clipping state.
bool clips;
};
template <typename T>
class PropertyTree {
public:
- PropertyTree();
+ explicit PropertyTree(Layer* root);
// Not virtual. Should not derive from this class.
~PropertyTree();
- // Returns id of inserted layer.
- int InsertRootNode(const T& tree_node);
-
- // Returns id of inserted layer.
+ // TODO(vollick): we can probably do without the return value.
int InsertWithParent(const T& tree_node, int parent_id);
+
int GetLastNodeID() const;
T* Node(int id);
@@ -77,12 +75,13 @@ class PropertyTree {
typedef T NodeType;
private:
+ int InsertRootNode(const T& tree_node);
std::vector<T> nodes_;
};
-typedef PropertyTree<TransformTreeNode> TransformTree;
-typedef PropertyTree<OpacityTreeNode> OpacityTree;
-typedef PropertyTree<ClipTreeNode> ClipTree;
+typedef PropertyTree<TransformNode> TransformTree;
+typedef PropertyTree<OpacityNode> OpacityTree;
+typedef PropertyTree<ClipNode> ClipTree;
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698