Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: cc/trees/layer_tree_host_common.cc

Issue 1639363002: Move have_wheel_event_handlers to WebLayerTreeView. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove blank line Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/trees/layer_tree_host.cc ('k') | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 // case where we may animate to a non-singular transform and wish to 637 // case where we may animate to a non-singular transform and wish to
638 // pre-raster. 638 // pre-raster.
639 if (!HasInvertibleOrAnimatedTransform(layer)) 639 if (!HasInvertibleOrAnimatedTransform(layer))
640 return true; 640 return true;
641 641
642 // When we need to do a readback/copy of a layer's output, we can not skip 642 // When we need to do a readback/copy of a layer's output, we can not skip
643 // it or any of its ancestors. 643 // it or any of its ancestors.
644 if (layer->num_copy_requests_in_target_subtree() > 0) 644 if (layer->num_copy_requests_in_target_subtree() > 0)
645 return false; 645 return false;
646 646
647 // We cannot skip the the subtree if a descendant has a wheel or touch handler 647 // We cannot skip the the subtree if a descendant has a touch handler
648 // or the hit testing code will break (it requires fresh transforms, etc). 648 // or the hit testing code will break (it requires fresh transforms, etc).
649 if (layer->layer_or_descendant_has_input_handler()) 649 if (layer->layer_or_descendant_has_touch_handler())
650 return false; 650 return false;
651 651
652 // If the layer is not drawn, then skip it and its subtree. 652 // If the layer is not drawn, then skip it and its subtree.
653 if (!layer_is_drawn) 653 if (!layer_is_drawn)
654 return true; 654 return true;
655 655
656 // If layer is on the pending tree and opacity is being animated then 656 // If layer is on the pending tree and opacity is being animated then
657 // this subtree can't be skipped as we need to create, prioritize and 657 // this subtree can't be skipped as we need to create, prioritize and
658 // include tiles for this layer when deciding if tree can be activated. 658 // include tiles for this layer when deciding if tree can be activated.
659 if (layer->layer_tree_impl()->IsPendingTree() && 659 if (layer->layer_tree_impl()->IsPendingTree() &&
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
1051 MarkLayerListWithRenderSurfaceLayerListId( 1051 MarkLayerListWithRenderSurfaceLayerListId(
1052 &layer_to_remove->render_surface()->layer_list(), 0); 1052 &layer_to_remove->render_surface()->layer_list(), 0);
1053 MarkLayerWithRenderSurfaceLayerListId(layer_to_remove, 0); 1053 MarkLayerWithRenderSurfaceLayerListId(layer_to_remove, 0);
1054 render_surface_layer_list->pop_back(); 1054 render_surface_layer_list->pop_back();
1055 layer_to_remove->ClearRenderSurfaceLayerList(); 1055 layer_to_remove->ClearRenderSurfaceLayerList();
1056 } 1056 }
1057 1057
1058 struct PreCalculateMetaInformationRecursiveData { 1058 struct PreCalculateMetaInformationRecursiveData {
1059 size_t num_unclipped_descendants; 1059 size_t num_unclipped_descendants;
1060 int num_layer_or_descendants_with_copy_request; 1060 int num_layer_or_descendants_with_copy_request;
1061 int num_layer_or_descendants_with_input_handler; 1061 int num_layer_or_descendants_with_touch_handler;
1062 int num_descendants_that_draw_content; 1062 int num_descendants_that_draw_content;
1063 1063
1064 PreCalculateMetaInformationRecursiveData() 1064 PreCalculateMetaInformationRecursiveData()
1065 : num_unclipped_descendants(0), 1065 : num_unclipped_descendants(0),
1066 num_layer_or_descendants_with_copy_request(0), 1066 num_layer_or_descendants_with_copy_request(0),
1067 num_layer_or_descendants_with_input_handler(0), 1067 num_layer_or_descendants_with_touch_handler(0),
1068 num_descendants_that_draw_content(0) {} 1068 num_descendants_that_draw_content(0) {}
1069 1069
1070 void Merge(const PreCalculateMetaInformationRecursiveData& data) { 1070 void Merge(const PreCalculateMetaInformationRecursiveData& data) {
1071 num_layer_or_descendants_with_copy_request += 1071 num_layer_or_descendants_with_copy_request +=
1072 data.num_layer_or_descendants_with_copy_request; 1072 data.num_layer_or_descendants_with_copy_request;
1073 num_layer_or_descendants_with_input_handler += 1073 num_layer_or_descendants_with_touch_handler +=
1074 data.num_layer_or_descendants_with_input_handler; 1074 data.num_layer_or_descendants_with_touch_handler;
1075 num_unclipped_descendants += data.num_unclipped_descendants; 1075 num_unclipped_descendants += data.num_unclipped_descendants;
1076 num_descendants_that_draw_content += data.num_descendants_that_draw_content; 1076 num_descendants_that_draw_content += data.num_descendants_that_draw_content;
1077 } 1077 }
1078 }; 1078 };
1079 1079
1080 static bool IsMetaInformationRecomputationNeeded(Layer* layer) { 1080 static bool IsMetaInformationRecomputationNeeded(Layer* layer) {
1081 return layer->layer_tree_host()->needs_meta_info_recomputation(); 1081 return layer->layer_tree_host()->needs_meta_info_recomputation();
1082 } 1082 }
1083 1083
1084 static void UpdateMetaInformationSequenceNumber(Layer* root_layer) { 1084 static void UpdateMetaInformationSequenceNumber(Layer* root_layer) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 1121
1122 if (layer->clip_children()) { 1122 if (layer->clip_children()) {
1123 size_t num_clip_children = layer->clip_children()->size(); 1123 size_t num_clip_children = layer->clip_children()->size();
1124 DCHECK_GE(recursive_data->num_unclipped_descendants, num_clip_children); 1124 DCHECK_GE(recursive_data->num_unclipped_descendants, num_clip_children);
1125 recursive_data->num_unclipped_descendants -= num_clip_children; 1125 recursive_data->num_unclipped_descendants -= num_clip_children;
1126 } 1126 }
1127 1127
1128 if (layer->HasCopyRequest()) 1128 if (layer->HasCopyRequest())
1129 recursive_data->num_layer_or_descendants_with_copy_request++; 1129 recursive_data->num_layer_or_descendants_with_copy_request++;
1130 1130
1131 if (!layer->touch_event_handler_region().IsEmpty() || 1131 if (!layer->touch_event_handler_region().IsEmpty())
1132 layer->have_wheel_event_handlers()) 1132 recursive_data->num_layer_or_descendants_with_touch_handler++;
1133 recursive_data->num_layer_or_descendants_with_input_handler++;
1134 1133
1135 layer->set_num_unclipped_descendants( 1134 layer->set_num_unclipped_descendants(
1136 recursive_data->num_unclipped_descendants); 1135 recursive_data->num_unclipped_descendants);
1137 1136
1138 if (IsRootLayer(layer)) 1137 if (IsRootLayer(layer))
1139 layer->layer_tree_host()->SetNeedsMetaInfoRecomputation(false); 1138 layer->layer_tree_host()->SetNeedsMetaInfoRecomputation(false);
1140 } 1139 }
1141 1140
1142 static void PreCalculateMetaInformationInternal( 1141 static void PreCalculateMetaInformationInternal(
1143 LayerImpl* layer, 1142 LayerImpl* layer,
(...skipping 25 matching lines...) Expand all
1169 1168
1170 if (layer->clip_children()) { 1169 if (layer->clip_children()) {
1171 size_t num_clip_children = layer->clip_children()->size(); 1170 size_t num_clip_children = layer->clip_children()->size();
1172 DCHECK_GE(recursive_data->num_unclipped_descendants, num_clip_children); 1171 DCHECK_GE(recursive_data->num_unclipped_descendants, num_clip_children);
1173 recursive_data->num_unclipped_descendants -= num_clip_children; 1172 recursive_data->num_unclipped_descendants -= num_clip_children;
1174 } 1173 }
1175 1174
1176 if (layer->HasCopyRequest()) 1175 if (layer->HasCopyRequest())
1177 recursive_data->num_layer_or_descendants_with_copy_request++; 1176 recursive_data->num_layer_or_descendants_with_copy_request++;
1178 1177
1179 if (!layer->touch_event_handler_region().IsEmpty() || 1178 if (!layer->touch_event_handler_region().IsEmpty())
1180 layer->have_wheel_event_handlers()) 1179 recursive_data->num_layer_or_descendants_with_touch_handler++;
1181 recursive_data->num_layer_or_descendants_with_input_handler++;
1182 1180
1183 layer->draw_properties().num_unclipped_descendants = 1181 layer->draw_properties().num_unclipped_descendants =
1184 recursive_data->num_unclipped_descendants; 1182 recursive_data->num_unclipped_descendants;
1185 layer->set_layer_or_descendant_has_input_handler( 1183 layer->set_layer_or_descendant_has_touch_handler(
1186 (recursive_data->num_layer_or_descendants_with_input_handler != 0)); 1184 (recursive_data->num_layer_or_descendants_with_touch_handler != 0));
1187 // TODO(enne): this should be synced from the main thread, so is only 1185 // TODO(enne): this should be synced from the main thread, so is only
1188 // for tests constructing layers on the compositor thread. 1186 // for tests constructing layers on the compositor thread.
1189 layer->SetNumDescendantsThatDrawContent( 1187 layer->SetNumDescendantsThatDrawContent(
1190 recursive_data->num_descendants_that_draw_content); 1188 recursive_data->num_descendants_that_draw_content);
1191 1189
1192 if (layer->DrawsContent()) 1190 if (layer->DrawsContent())
1193 recursive_data->num_descendants_that_draw_content++; 1191 recursive_data->num_descendants_that_draw_content++;
1194 } 1192 }
1195 1193
1196 void LayerTreeHostCommon::PreCalculateMetaInformation(Layer* root_layer) { 1194 void LayerTreeHostCommon::PreCalculateMetaInformation(Layer* root_layer) {
(...skipping 1656 matching lines...) Expand 10 before | Expand all | Expand 10 after
2853 2851
2854 PropertyTrees* GetPropertyTrees(Layer* layer) { 2852 PropertyTrees* GetPropertyTrees(Layer* layer) {
2855 return layer->layer_tree_host()->property_trees(); 2853 return layer->layer_tree_host()->property_trees();
2856 } 2854 }
2857 2855
2858 PropertyTrees* GetPropertyTrees(LayerImpl* layer) { 2856 PropertyTrees* GetPropertyTrees(LayerImpl* layer) {
2859 return layer->layer_tree_impl()->property_trees(); 2857 return layer->layer_tree_impl()->property_trees();
2860 } 2858 }
2861 2859
2862 } // namespace cc 2860 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.cc ('k') | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698