diff options
author | jaydasika <jaydasika@chromium.org> | 2016-01-28 12:18:33 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-28 20:19:33 +0000 |
commit | e00c8a4bf6e38da254c9624602b2a74e45853103 (patch) | |
tree | 88b1d74e21508dd49cefbe0021b29e41172856cf /cc/trees/property_tree.cc | |
parent | 21a110d3e3c2367300904f9337da966f6f531b59 (diff) | |
download | chromium_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.cc | 4 |
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(); |