| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/trees/property_tree_builder.h" | 5 #include "cc/trees/property_tree_builder.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "cc/base/math_util.h" | 10 #include "cc/base/math_util.h" |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 layer->set_transform_tree_index(transform_parent->transform_tree_index()); | 164 layer->set_transform_tree_index(transform_parent->transform_tree_index()); |
| 165 return; | 165 return; |
| 166 } | 166 } |
| 167 | 167 |
| 168 if (!is_root) { | 168 if (!is_root) { |
| 169 data_for_children->transform_tree->Insert( | 169 data_for_children->transform_tree->Insert( |
| 170 TransformNode(), transform_parent->transform_tree_index()); | 170 TransformNode(), transform_parent->transform_tree_index()); |
| 171 } | 171 } |
| 172 | 172 |
| 173 TransformNode* node = data_for_children->transform_tree->back(); | 173 TransformNode* node = data_for_children->transform_tree->back(); |
| 174 layer->set_transform_tree_index(node->id); |
| 174 | 175 |
| 175 node->data.flattens = layer->should_flatten_transform(); | 176 node->data.flattens = layer->should_flatten_transform(); |
| 176 node->data.target_id = | 177 node->data.target_id = |
| 177 data_from_ancestor.render_target->transform_tree_index(); | 178 data_from_ancestor.render_target->transform_tree_index(); |
| 179 DCHECK_NE(node->data.target_id, -1); |
| 178 node->data.is_animated = layer->TransformIsAnimating(); | 180 node->data.is_animated = layer->TransformIsAnimating(); |
| 179 | 181 |
| 180 gfx::Transform transform; | 182 gfx::Transform transform; |
| 181 float device_and_page_scale_factors = 1.0f; | 183 float device_and_page_scale_factors = 1.0f; |
| 182 if (is_root) | 184 if (is_root) |
| 183 device_and_page_scale_factors = data_from_ancestor.device_scale_factor; | 185 device_and_page_scale_factors = data_from_ancestor.device_scale_factor; |
| 184 if (is_page_scale_application_layer) | 186 if (is_page_scale_application_layer) |
| 185 device_and_page_scale_factors *= data_from_ancestor.page_scale_factor; | 187 device_and_page_scale_factors *= data_from_ancestor.page_scale_factor; |
| 186 | 188 |
| 187 transform.Scale(device_and_page_scale_factors, device_and_page_scale_factors); | 189 transform.Scale(device_and_page_scale_factors, device_and_page_scale_factors); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 207 transform.Translate3d(-layer->transform_origin().x(), | 209 transform.Translate3d(-layer->transform_origin().x(), |
| 208 -layer->transform_origin().y(), | 210 -layer->transform_origin().y(), |
| 209 -layer->transform_origin().z()); | 211 -layer->transform_origin().z()); |
| 210 | 212 |
| 211 node->data.to_parent = transform; | 213 node->data.to_parent = transform; |
| 212 node->data.is_invertible = transform.GetInverse(&node->data.from_parent); | 214 node->data.is_invertible = transform.GetInverse(&node->data.from_parent); |
| 213 | 215 |
| 214 data_from_ancestor.transform_tree->UpdateScreenSpaceTransform(node->id); | 216 data_from_ancestor.transform_tree->UpdateScreenSpaceTransform(node->id); |
| 215 | 217 |
| 216 layer->set_offset_to_transform_parent(gfx::Vector2dF()); | 218 layer->set_offset_to_transform_parent(gfx::Vector2dF()); |
| 217 layer->set_transform_tree_index(node->id); | |
| 218 } | 219 } |
| 219 | 220 |
| 220 void BuildPropertyTreesInternal(Layer* layer, | 221 void BuildPropertyTreesInternal(Layer* layer, |
| 221 const DataForRecursion& data_from_parent) { | 222 const DataForRecursion& data_from_parent) { |
| 222 DataForRecursion data_for_children(data_from_parent); | 223 DataForRecursion data_for_children(data_from_parent); |
| 223 if (layer->render_surface()) | 224 if (layer->render_surface()) |
| 224 data_for_children.render_target = layer; | 225 data_for_children.render_target = layer; |
| 225 | 226 |
| 226 AddTransformNodeIfNeeded(data_from_parent, layer, &data_for_children); | 227 AddTransformNodeIfNeeded(data_from_parent, layer, &data_for_children); |
| 227 AddClipNodeIfNeeded(data_from_parent, layer, &data_for_children); | 228 AddClipNodeIfNeeded(data_from_parent, layer, &data_for_children); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 data_for_recursion.clip_tree_parent = clip_tree->Insert(root_clip, 0); | 272 data_for_recursion.clip_tree_parent = clip_tree->Insert(root_clip, 0); |
| 272 | 273 |
| 273 BuildPropertyTreesInternal(root_layer, data_for_recursion); | 274 BuildPropertyTreesInternal(root_layer, data_for_recursion); |
| 274 | 275 |
| 275 TransformNode* transform_root = transform_tree->Node(transform_root_id); | 276 TransformNode* transform_root = transform_tree->Node(transform_root_id); |
| 276 transform_root->data.set_to_parent(device_transform * | 277 transform_root->data.set_to_parent(device_transform * |
| 277 transform_root->data.to_parent); | 278 transform_root->data.to_parent); |
| 278 } | 279 } |
| 279 | 280 |
| 280 } // namespace cc | 281 } // namespace cc |
| OLD | NEW |