OLD | NEW |
1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 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/layers/layer.h" | 5 #include "cc/layers/layer.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 layer_id_(g_next_layer_id.GetNext() + 1), | 57 layer_id_(g_next_layer_id.GetNext() + 1), |
58 ignore_set_needs_commit_(false), | 58 ignore_set_needs_commit_(false), |
59 sorting_context_id_(0), | 59 sorting_context_id_(0), |
60 parent_(nullptr), | 60 parent_(nullptr), |
61 layer_tree_host_(nullptr), | 61 layer_tree_host_(nullptr), |
62 scroll_clip_layer_id_(INVALID_ID), | 62 scroll_clip_layer_id_(INVALID_ID), |
63 num_descendants_that_draw_content_(0), | 63 num_descendants_that_draw_content_(0), |
64 transform_tree_index_(-1), | 64 transform_tree_index_(-1), |
65 effect_tree_index_(-1), | 65 effect_tree_index_(-1), |
66 clip_tree_index_(-1), | 66 clip_tree_index_(-1), |
| 67 scroll_tree_index_(-1), |
67 property_tree_sequence_number_(-1), | 68 property_tree_sequence_number_(-1), |
68 element_id_(0), | 69 element_id_(0), |
69 mutable_properties_(kMutablePropertyNone), | 70 mutable_properties_(kMutablePropertyNone), |
70 main_thread_scrolling_reasons_( | 71 main_thread_scrolling_reasons_( |
71 MainThreadScrollingReason::kNotScrollingOnMain), | 72 MainThreadScrollingReason::kNotScrollingOnMain), |
72 should_flatten_transform_from_property_tree_(false), | 73 should_flatten_transform_from_property_tree_(false), |
73 have_wheel_event_handlers_(false), | 74 have_wheel_event_handlers_(false), |
74 have_scroll_event_handlers_(false), | 75 have_scroll_event_handlers_(false), |
75 user_scrollable_horizontal_(true), | 76 user_scrollable_horizontal_(true), |
76 user_scrollable_vertical_(true), | 77 user_scrollable_vertical_(true), |
(...skipping 1001 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1078 | 1079 |
1079 int Layer::effect_tree_index() const { | 1080 int Layer::effect_tree_index() const { |
1080 if (!layer_tree_host_ || | 1081 if (!layer_tree_host_ || |
1081 layer_tree_host_->property_trees()->sequence_number != | 1082 layer_tree_host_->property_trees()->sequence_number != |
1082 property_tree_sequence_number_) { | 1083 property_tree_sequence_number_) { |
1083 return -1; | 1084 return -1; |
1084 } | 1085 } |
1085 return effect_tree_index_; | 1086 return effect_tree_index_; |
1086 } | 1087 } |
1087 | 1088 |
| 1089 void Layer::SetScrollTreeIndex(int index) { |
| 1090 DCHECK(IsPropertyChangeAllowed()); |
| 1091 if (scroll_tree_index_ == index) |
| 1092 return; |
| 1093 scroll_tree_index_ = index; |
| 1094 SetNeedsPushProperties(); |
| 1095 } |
| 1096 |
| 1097 int Layer::scroll_tree_index() const { |
| 1098 if (!layer_tree_host_ || |
| 1099 layer_tree_host_->property_trees()->sequence_number != |
| 1100 property_tree_sequence_number_) { |
| 1101 return -1; |
| 1102 } |
| 1103 return scroll_tree_index_; |
| 1104 } |
| 1105 |
1088 void Layer::InvalidatePropertyTreesIndices() { | 1106 void Layer::InvalidatePropertyTreesIndices() { |
1089 int invalid_property_tree_index = -1; | 1107 int invalid_property_tree_index = -1; |
1090 SetTransformTreeIndex(invalid_property_tree_index); | 1108 SetTransformTreeIndex(invalid_property_tree_index); |
1091 SetClipTreeIndex(invalid_property_tree_index); | 1109 SetClipTreeIndex(invalid_property_tree_index); |
1092 SetEffectTreeIndex(invalid_property_tree_index); | 1110 SetEffectTreeIndex(invalid_property_tree_index); |
1093 } | 1111 } |
1094 | 1112 |
1095 void Layer::SetShouldFlattenTransform(bool should_flatten) { | 1113 void Layer::SetShouldFlattenTransform(bool should_flatten) { |
1096 DCHECK(IsPropertyChangeAllowed()); | 1114 DCHECK(IsPropertyChangeAllowed()); |
1097 if (should_flatten_transform_ == should_flatten) | 1115 if (should_flatten_transform_ == should_flatten) |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1191 #if defined(NDEBUG) | 1209 #if defined(NDEBUG) |
1192 if (frame_viewer_instrumentation::IsTracingLayerTreeSnapshots()) | 1210 if (frame_viewer_instrumentation::IsTracingLayerTreeSnapshots()) |
1193 layer->SetDebugInfo(TakeDebugInfo()); | 1211 layer->SetDebugInfo(TakeDebugInfo()); |
1194 #else | 1212 #else |
1195 layer->SetDebugInfo(TakeDebugInfo()); | 1213 layer->SetDebugInfo(TakeDebugInfo()); |
1196 #endif | 1214 #endif |
1197 | 1215 |
1198 layer->SetTransformTreeIndex(transform_tree_index()); | 1216 layer->SetTransformTreeIndex(transform_tree_index()); |
1199 layer->SetEffectTreeIndex(effect_tree_index()); | 1217 layer->SetEffectTreeIndex(effect_tree_index()); |
1200 layer->SetClipTreeIndex(clip_tree_index()); | 1218 layer->SetClipTreeIndex(clip_tree_index()); |
| 1219 layer->SetScrollTreeIndex(scroll_tree_index()); |
1201 layer->set_offset_to_transform_parent(offset_to_transform_parent_); | 1220 layer->set_offset_to_transform_parent(offset_to_transform_parent_); |
1202 layer->SetDoubleSided(double_sided_); | 1221 layer->SetDoubleSided(double_sided_); |
1203 layer->SetDrawsContent(DrawsContent()); | 1222 layer->SetDrawsContent(DrawsContent()); |
1204 layer->SetHideLayerAndSubtree(hide_layer_and_subtree_); | 1223 layer->SetHideLayerAndSubtree(hide_layer_and_subtree_); |
1205 layer->SetHasRenderSurface(has_render_surface_); | 1224 layer->SetHasRenderSurface(has_render_surface_); |
1206 layer->SetForceRenderSurface(force_render_surface_); | 1225 layer->SetForceRenderSurface(force_render_surface_); |
1207 if (!layer->FilterIsAnimatingOnImplOnly() && !FilterIsAnimating()) | 1226 if (!layer->FilterIsAnimatingOnImplOnly() && !FilterIsAnimating()) |
1208 layer->SetFilters(filters_); | 1227 layer->SetFilters(filters_); |
1209 DCHECK(!(FilterIsAnimating() && layer->FilterIsAnimatingOnImplOnly())); | 1228 DCHECK(!(FilterIsAnimating() && layer->FilterIsAnimatingOnImplOnly())); |
1210 layer->SetBackgroundFilters(background_filters()); | 1229 layer->SetBackgroundFilters(background_filters()); |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1462 Point3FToProto(transform_origin_, base->mutable_transform_origin()); | 1481 Point3FToProto(transform_origin_, base->mutable_transform_origin()); |
1463 base->set_background_color(background_color_); | 1482 base->set_background_color(background_color_); |
1464 SizeToProto(use_paint_properties ? paint_properties_.bounds : bounds_, | 1483 SizeToProto(use_paint_properties ? paint_properties_.bounds : bounds_, |
1465 base->mutable_bounds()); | 1484 base->mutable_bounds()); |
1466 | 1485 |
1467 // TODO(nyquist): Figure out what to do with debug info. See crbug.com/570372. | 1486 // TODO(nyquist): Figure out what to do with debug info. See crbug.com/570372. |
1468 | 1487 |
1469 base->set_transform_free_index(transform_tree_index_); | 1488 base->set_transform_free_index(transform_tree_index_); |
1470 base->set_effect_tree_index(effect_tree_index_); | 1489 base->set_effect_tree_index(effect_tree_index_); |
1471 base->set_clip_tree_index(clip_tree_index_); | 1490 base->set_clip_tree_index(clip_tree_index_); |
| 1491 base->set_scroll_tree_index(scroll_tree_index_); |
1472 Vector2dFToProto(offset_to_transform_parent_, | 1492 Vector2dFToProto(offset_to_transform_parent_, |
1473 base->mutable_offset_to_transform_parent()); | 1493 base->mutable_offset_to_transform_parent()); |
1474 base->set_double_sided(double_sided_); | 1494 base->set_double_sided(double_sided_); |
1475 base->set_draws_content(draws_content_); | 1495 base->set_draws_content(draws_content_); |
1476 base->set_hide_layer_and_subtree(hide_layer_and_subtree_); | 1496 base->set_hide_layer_and_subtree(hide_layer_and_subtree_); |
1477 base->set_has_render_surface(has_render_surface_); | 1497 base->set_has_render_surface(has_render_surface_); |
1478 | 1498 |
1479 // TODO(nyquist): Add support for serializing FilterOperations for | 1499 // TODO(nyquist): Add support for serializing FilterOperations for |
1480 // |filters_| and |background_filters_|. See crbug.com/541321. | 1500 // |filters_| and |background_filters_|. See crbug.com/541321. |
1481 | 1501 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1552 DCHECK(layer_tree_host_); | 1572 DCHECK(layer_tree_host_); |
1553 const proto::BaseLayerProperties& base = proto.base(); | 1573 const proto::BaseLayerProperties& base = proto.base(); |
1554 | 1574 |
1555 transform_origin_ = ProtoToPoint3F(base.transform_origin()); | 1575 transform_origin_ = ProtoToPoint3F(base.transform_origin()); |
1556 background_color_ = base.background_color(); | 1576 background_color_ = base.background_color(); |
1557 bounds_ = ProtoToSize(base.bounds()); | 1577 bounds_ = ProtoToSize(base.bounds()); |
1558 | 1578 |
1559 transform_tree_index_ = base.transform_free_index(); | 1579 transform_tree_index_ = base.transform_free_index(); |
1560 effect_tree_index_ = base.effect_tree_index(); | 1580 effect_tree_index_ = base.effect_tree_index(); |
1561 clip_tree_index_ = base.clip_tree_index(); | 1581 clip_tree_index_ = base.clip_tree_index(); |
| 1582 scroll_tree_index_ = base.scroll_tree_index(); |
1562 offset_to_transform_parent_ = | 1583 offset_to_transform_parent_ = |
1563 ProtoToVector2dF(base.offset_to_transform_parent()); | 1584 ProtoToVector2dF(base.offset_to_transform_parent()); |
1564 double_sided_ = base.double_sided(); | 1585 double_sided_ = base.double_sided(); |
1565 draws_content_ = base.draws_content(); | 1586 draws_content_ = base.draws_content(); |
1566 hide_layer_and_subtree_ = base.hide_layer_and_subtree(); | 1587 hide_layer_and_subtree_ = base.hide_layer_and_subtree(); |
1567 has_render_surface_ = base.has_render_surface(); | 1588 has_render_surface_ = base.has_render_surface(); |
1568 masks_to_bounds_ = base.masks_to_bounds(); | 1589 masks_to_bounds_ = base.masks_to_bounds(); |
1569 main_thread_scrolling_reasons_ = base.main_thread_scrolling_reasons(); | 1590 main_thread_scrolling_reasons_ = base.main_thread_scrolling_reasons(); |
1570 have_wheel_event_handlers_ = base.have_wheel_event_handlers(); | 1591 have_wheel_event_handlers_ = base.have_wheel_event_handlers(); |
1571 have_scroll_event_handlers_ = base.have_scroll_event_handlers(); | 1592 have_scroll_event_handlers_ = base.have_scroll_event_handlers(); |
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2032 this, layer_tree_host_->property_trees()->transform_tree); | 2053 this, layer_tree_host_->property_trees()->transform_tree); |
2033 } | 2054 } |
2034 | 2055 |
2035 gfx::Transform Layer::screen_space_transform() const { | 2056 gfx::Transform Layer::screen_space_transform() const { |
2036 DCHECK_NE(transform_tree_index_, -1); | 2057 DCHECK_NE(transform_tree_index_, -1); |
2037 return ScreenSpaceTransformFromPropertyTrees( | 2058 return ScreenSpaceTransformFromPropertyTrees( |
2038 this, layer_tree_host_->property_trees()->transform_tree); | 2059 this, layer_tree_host_->property_trees()->transform_tree); |
2039 } | 2060 } |
2040 | 2061 |
2041 } // namespace cc | 2062 } // namespace cc |
OLD | NEW |