OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/layer_tree_host_common.h" | 5 #include "cc/trees/layer_tree_host_common.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/trace_event/trace_event.h" | 9 #include "base/trace_event/trace_event.h" |
10 #include "cc/base/math_util.h" | 10 #include "cc/base/math_util.h" |
(...skipping 1193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1204 }; | 1204 }; |
1205 | 1205 |
1206 // Recursively walks the layer tree to compute any information that is needed | 1206 // Recursively walks the layer tree to compute any information that is needed |
1207 // before doing the main recursion. | 1207 // before doing the main recursion. |
1208 template <typename LayerType> | 1208 template <typename LayerType> |
1209 static void PreCalculateMetaInformation( | 1209 static void PreCalculateMetaInformation( |
1210 LayerType* layer, | 1210 LayerType* layer, |
1211 PreCalculateMetaInformationRecursiveData* recursive_data) { | 1211 PreCalculateMetaInformationRecursiveData* recursive_data) { |
1212 layer->draw_properties().sorted_for_recursion = false; | 1212 layer->draw_properties().sorted_for_recursion = false; |
1213 layer->draw_properties().has_child_with_a_scroll_parent = false; | 1213 layer->draw_properties().has_child_with_a_scroll_parent = false; |
| 1214 layer->draw_properties().visited = false; |
1214 | 1215 |
1215 if (!HasInvertibleOrAnimatedTransform(layer)) { | 1216 if (!HasInvertibleOrAnimatedTransform(layer)) { |
1216 // Layers with singular transforms should not be drawn, the whole subtree | 1217 // Layers with singular transforms should not be drawn, the whole subtree |
1217 // can be skipped. | 1218 // can be skipped. |
1218 return; | 1219 return; |
1219 } | 1220 } |
1220 | 1221 |
1221 if (layer->clip_parent()) | 1222 if (layer->clip_parent()) |
1222 recursive_data->num_unclipped_descendants++; | 1223 recursive_data->num_unclipped_descendants++; |
1223 | 1224 |
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1571 // The replica draw transform to the root (screen space) origin is: | 1572 // The replica draw transform to the root (screen space) origin is: |
1572 // M[replica2root] = M[surface2root] * Tr[replica->position()] * | 1573 // M[replica2root] = M[surface2root] * Tr[replica->position()] * |
1573 // Tr[replica] * Tr[origin2anchor].inverse() | 1574 // Tr[replica] * Tr[origin2anchor].inverse() |
1574 // | 1575 // |
1575 | 1576 |
1576 // It makes no sense to have a non-unit page_scale_factor without specifying | 1577 // It makes no sense to have a non-unit page_scale_factor without specifying |
1577 // which layer roots the subtree the scale is applied to. | 1578 // which layer roots the subtree the scale is applied to. |
1578 DCHECK(globals.page_scale_application_layer || | 1579 DCHECK(globals.page_scale_application_layer || |
1579 (globals.page_scale_factor == 1.f)); | 1580 (globals.page_scale_factor == 1.f)); |
1580 | 1581 |
| 1582 CHECK(!layer->draw_properties().visited); |
| 1583 layer->draw_properties().visited = true; |
| 1584 |
1581 DataForRecursion<LayerType> data_for_children; | 1585 DataForRecursion<LayerType> data_for_children; |
1582 typename LayerType::RenderSurfaceType* | 1586 typename LayerType::RenderSurfaceType* |
1583 nearest_occlusion_immune_ancestor_surface = | 1587 nearest_occlusion_immune_ancestor_surface = |
1584 data_from_ancestor.nearest_occlusion_immune_ancestor_surface; | 1588 data_from_ancestor.nearest_occlusion_immune_ancestor_surface; |
1585 data_for_children.in_subtree_of_page_scale_application_layer = | 1589 data_for_children.in_subtree_of_page_scale_application_layer = |
1586 data_from_ancestor.in_subtree_of_page_scale_application_layer; | 1590 data_from_ancestor.in_subtree_of_page_scale_application_layer; |
1587 data_for_children.subtree_can_use_lcd_text = | 1591 data_for_children.subtree_can_use_lcd_text = |
1588 data_from_ancestor.subtree_can_use_lcd_text; | 1592 data_from_ancestor.subtree_can_use_lcd_text; |
1589 | 1593 |
1590 // Layers that are marked as hidden will hide themselves and their subtree. | 1594 // Layers that are marked as hidden will hide themselves and their subtree. |
(...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2558 inputs->current_render_surface_layer_list_id); | 2562 inputs->current_render_surface_layer_list_id); |
2559 | 2563 |
2560 // The dummy layer list should not have been used. | 2564 // The dummy layer list should not have been used. |
2561 DCHECK_EQ(0u, dummy_layer_list.size()); | 2565 DCHECK_EQ(0u, dummy_layer_list.size()); |
2562 // A root layer render_surface should always exist after | 2566 // A root layer render_surface should always exist after |
2563 // CalculateDrawProperties. | 2567 // CalculateDrawProperties. |
2564 DCHECK(inputs->root_layer->render_surface()); | 2568 DCHECK(inputs->root_layer->render_surface()); |
2565 } | 2569 } |
2566 | 2570 |
2567 } // namespace cc | 2571 } // namespace cc |
OLD | NEW |