summaryrefslogtreecommitdiffstats
path: root/cc/trees/property_tree.cc
diff options
context:
space:
mode:
authorjaydasika <jaydasika@chromium.org>2016-01-28 12:18:33 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-28 20:19:33 +0000
commite00c8a4bf6e38da254c9624602b2a74e45853103 (patch)
tree88b1d74e21508dd49cefbe0021b29e41172856cf /cc/trees/property_tree.cc
parent21a110d3e3c2367300904f9337da966f6f531b59 (diff)
downloadchromium_src-e00c8a4bf6e38da254c9624602b2a74e45853103.zip
chromium_src-e00c8a4bf6e38da254c9624602b2a74e45853103.tar.gz
chromium_src-e00c8a4bf6e38da254c9624602b2a74e45853103.tar.bz2
cc:: Add transform nodes at boundaries of 3d rendering contexts
We then store the sorting context id in transform nodes and use it to determine layer and surface backface visibility. This patch also fixes a bug in backface visibility computation when we have nested 3d rendering contexts. BUG=568746,581570 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1624693004 Cr-Commit-Position: refs/heads/master@{#372150}
Diffstat (limited to 'cc/trees/property_tree.cc')
-rw-r--r--cc/trees/property_tree.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc
index 54d885e..2f88c83 100644
--- a/cc/trees/property_tree.cc
+++ b/cc/trees/property_tree.cc
@@ -125,6 +125,7 @@ TransformNodeData::TransformNodeData()
: target_id(-1),
content_target_id(-1),
source_node_id(-1),
+ sorting_context_id(0),
needs_local_transform_update(true),
is_invertible(true),
ancestors_are_invertible(true),
@@ -159,6 +160,7 @@ bool TransformNodeData::operator==(const TransformNodeData& other) const {
target_id == other.target_id &&
content_target_id == other.content_target_id &&
source_node_id == other.source_node_id &&
+ sorting_context_id == other.sorting_context_id &&
needs_local_transform_update == other.needs_local_transform_update &&
is_invertible == other.is_invertible &&
ancestors_are_invertible == other.ancestors_are_invertible &&
@@ -236,6 +238,7 @@ void TransformNodeData::ToProtobuf(proto::TreeNode* proto) const {
data->set_target_id(target_id);
data->set_content_target_id(content_target_id);
data->set_source_node_id(source_node_id);
+ data->set_sorting_context_id(sorting_context_id);
data->set_needs_local_transform_update(needs_local_transform_update);
@@ -300,6 +303,7 @@ void TransformNodeData::FromProtobuf(const proto::TreeNode& proto) {
target_id = data.target_id();
content_target_id = data.content_target_id();
source_node_id = data.source_node_id();
+ sorting_context_id = data.sorting_context_id();
needs_local_transform_update = data.needs_local_transform_update();