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

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

Issue 2655233006: cc : Clean up cc clip tree (Closed)
Patch Set: Address comments Created 3 years, 9 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
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_impl.h" 5 #include "cc/trees/layer_tree_impl.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 1008 matching lines...) Expand 10 before | Expand all | Expand 10 after
1019 layer->SetElementId(LayerIdToElementIdForTesting(layer->id())); 1019 layer->SetElementId(LayerIdToElementIdForTesting(layer->id()));
1020 } 1020 }
1021 1021
1022 void LayerTreeImpl::SetElementIdsForTesting() { 1022 void LayerTreeImpl::SetElementIdsForTesting() {
1023 LayerListIterator<LayerImpl> it(root_layer_for_testing_); 1023 LayerListIterator<LayerImpl> it(root_layer_for_testing_);
1024 for (; it != LayerListIterator<LayerImpl>(nullptr); ++it) { 1024 for (; it != LayerListIterator<LayerImpl>(nullptr); ++it) {
1025 SetElementIdForTesting(*it); 1025 SetElementIdForTesting(*it);
1026 } 1026 }
1027 } 1027 }
1028 1028
1029 bool LayerTreeImpl::UpdateDrawProperties( 1029 bool LayerTreeImpl::UpdateDrawProperties(bool update_lcd_text) {
1030 bool update_lcd_text,
1031 bool force_skip_verify_visible_rect_calculations) {
1032 if (!needs_update_draw_properties_) 1030 if (!needs_update_draw_properties_)
1033 return true; 1031 return true;
1034 1032
1035 // Calling UpdateDrawProperties must clear this flag, so there can be no 1033 // Calling UpdateDrawProperties must clear this flag, so there can be no
1036 // early outs before this. 1034 // early outs before this.
1037 needs_update_draw_properties_ = false; 1035 needs_update_draw_properties_ = false;
1038 1036
1039 // For max_texture_size. When a new output surface is received the needs 1037 // For max_texture_size. When a new output surface is received the needs
1040 // update draw properties flag is set again. 1038 // update draw properties flag is set again.
1041 if (!layer_tree_host_impl_->compositor_frame_sink()) 1039 if (!layer_tree_host_impl_->compositor_frame_sink())
(...skipping 11 matching lines...) Expand all
1053 TRACE_EVENT2( 1051 TRACE_EVENT2(
1054 "cc", "LayerTreeImpl::UpdateDrawProperties::CalculateDrawProperties", 1052 "cc", "LayerTreeImpl::UpdateDrawProperties::CalculateDrawProperties",
1055 "IsActive", IsActiveTree(), "SourceFrameNumber", source_frame_number_); 1053 "IsActive", IsActiveTree(), "SourceFrameNumber", source_frame_number_);
1056 // TODO(crbug.com/692780): Remove this option entirely once this get to 1054 // TODO(crbug.com/692780): Remove this option entirely once this get to
1057 // stable and proves it works. 1055 // stable and proves it works.
1058 bool can_render_to_separate_surface = true; 1056 bool can_render_to_separate_surface = true;
1059 1057
1060 // We verify visible rect calculations whenever we verify clip tree 1058 // We verify visible rect calculations whenever we verify clip tree
1061 // calculations except when this function is explicitly passed a flag asking 1059 // calculations except when this function is explicitly passed a flag asking
1062 // us to skip it. 1060 // us to skip it.
1063 bool verify_visible_rect_calculations =
1064 force_skip_verify_visible_rect_calculations
1065 ? false
1066 : settings().verify_clip_tree_calculations;
1067 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs( 1061 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs(
1068 layer_list_[0], DrawViewportSize(), 1062 layer_list_[0], DrawViewportSize(),
1069 layer_tree_host_impl_->DrawTransform(), device_scale_factor(), 1063 layer_tree_host_impl_->DrawTransform(), device_scale_factor(),
1070 current_page_scale_factor(), PageScaleLayer(), 1064 current_page_scale_factor(), PageScaleLayer(),
1071 InnerViewportScrollLayer(), OuterViewportScrollLayer(), 1065 InnerViewportScrollLayer(), OuterViewportScrollLayer(),
1072 elastic_overscroll()->Current(IsActiveTree()), 1066 elastic_overscroll()->Current(IsActiveTree()),
1073 OverscrollElasticityLayer(), resource_provider()->max_texture_size(), 1067 OverscrollElasticityLayer(), resource_provider()->max_texture_size(),
1074 can_render_to_separate_surface, 1068 can_render_to_separate_surface,
1075 settings().layer_transforms_should_scale_layer_contents, 1069 settings().layer_transforms_should_scale_layer_contents,
1076 settings().verify_clip_tree_calculations, 1070 settings().use_layer_lists, &render_surface_layer_list_,
1077 verify_visible_rect_calculations, &render_surface_layer_list_,
1078 &property_trees_); 1071 &property_trees_);
1079 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 1072 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
1080 if (const char* client_name = GetClientNameForMetrics()) { 1073 if (const char* client_name = GetClientNameForMetrics()) {
1081 UMA_HISTOGRAM_COUNTS( 1074 UMA_HISTOGRAM_COUNTS(
1082 base::StringPrintf( 1075 base::StringPrintf(
1083 "Compositing.%s.LayerTreeImpl.CalculateDrawPropertiesUs", 1076 "Compositing.%s.LayerTreeImpl.CalculateDrawPropertiesUs",
1084 client_name), 1077 client_name),
1085 timer.Elapsed().InMicroseconds()); 1078 timer.Elapsed().InMicroseconds());
1086 UMA_HISTOGRAM_COUNTS_100( 1079 UMA_HISTOGRAM_COUNTS_100(
1087 base::StringPrintf("Compositing.%s.NumRenderSurfaces", client_name), 1080 base::StringPrintf("Compositing.%s.NumRenderSurfaces", client_name),
(...skipping 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after
2165 2158
2166 void LayerTreeImpl::ResetAllChangeTracking() { 2159 void LayerTreeImpl::ResetAllChangeTracking() {
2167 layers_that_should_push_properties_.clear(); 2160 layers_that_should_push_properties_.clear();
2168 // Iterate over all layers, including masks. 2161 // Iterate over all layers, including masks.
2169 for (auto& layer : *layers_) 2162 for (auto& layer : *layers_)
2170 layer->ResetChangeTracking(); 2163 layer->ResetChangeTracking();
2171 property_trees_.ResetAllChangeTracking(); 2164 property_trees_.ResetAllChangeTracking();
2172 } 2165 }
2173 2166
2174 } // namespace cc 2167 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698