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

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

Issue 2655233006: cc : Clean up cc clip tree (Closed)
Patch Set: rebase 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
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | cc/trees/layer_tree_impl_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_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 994 matching lines...) Expand 10 before | Expand all | Expand 10 after
1005 layer->SetElementId(LayerIdToElementIdForTesting(layer->id())); 1005 layer->SetElementId(LayerIdToElementIdForTesting(layer->id()));
1006 } 1006 }
1007 1007
1008 void LayerTreeImpl::SetElementIdsForTesting() { 1008 void LayerTreeImpl::SetElementIdsForTesting() {
1009 LayerListIterator<LayerImpl> it(root_layer_for_testing_); 1009 LayerListIterator<LayerImpl> it(root_layer_for_testing_);
1010 for (; it != LayerListIterator<LayerImpl>(nullptr); ++it) { 1010 for (; it != LayerListIterator<LayerImpl>(nullptr); ++it) {
1011 SetElementIdForTesting(*it); 1011 SetElementIdForTesting(*it);
1012 } 1012 }
1013 } 1013 }
1014 1014
1015 bool LayerTreeImpl::UpdateDrawProperties( 1015 bool LayerTreeImpl::UpdateDrawProperties(bool update_lcd_text) {
1016 bool update_lcd_text,
1017 bool force_skip_verify_visible_rect_calculations) {
1018 if (!needs_update_draw_properties_) 1016 if (!needs_update_draw_properties_)
1019 return true; 1017 return true;
1020 1018
1021 // Calling UpdateDrawProperties must clear this flag, so there can be no 1019 // Calling UpdateDrawProperties must clear this flag, so there can be no
1022 // early outs before this. 1020 // early outs before this.
1023 needs_update_draw_properties_ = false; 1021 needs_update_draw_properties_ = false;
1024 1022
1025 // For max_texture_size. When a new output surface is received the needs 1023 // For max_texture_size. When a new output surface is received the needs
1026 // update draw properties flag is set again. 1024 // update draw properties flag is set again.
1027 if (!layer_tree_host_impl_->compositor_frame_sink()) 1025 if (!layer_tree_host_impl_->compositor_frame_sink())
(...skipping 11 matching lines...) Expand all
1039 TRACE_EVENT2( 1037 TRACE_EVENT2(
1040 "cc", "LayerTreeImpl::UpdateDrawProperties::CalculateDrawProperties", 1038 "cc", "LayerTreeImpl::UpdateDrawProperties::CalculateDrawProperties",
1041 "IsActive", IsActiveTree(), "SourceFrameNumber", source_frame_number_); 1039 "IsActive", IsActiveTree(), "SourceFrameNumber", source_frame_number_);
1042 // TODO(crbug.com/692780): Remove this option entirely once this get to 1040 // TODO(crbug.com/692780): Remove this option entirely once this get to
1043 // stable and proves it works. 1041 // stable and proves it works.
1044 bool can_render_to_separate_surface = true; 1042 bool can_render_to_separate_surface = true;
1045 1043
1046 // We verify visible rect calculations whenever we verify clip tree 1044 // We verify visible rect calculations whenever we verify clip tree
1047 // calculations except when this function is explicitly passed a flag asking 1045 // calculations except when this function is explicitly passed a flag asking
1048 // us to skip it. 1046 // us to skip it.
1049 bool verify_visible_rect_calculations =
1050 force_skip_verify_visible_rect_calculations
1051 ? false
1052 : settings().verify_clip_tree_calculations;
1053 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs( 1047 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs(
1054 layer_list_[0], DrawViewportSize(), 1048 layer_list_[0], DrawViewportSize(),
1055 layer_tree_host_impl_->DrawTransform(), device_scale_factor(), 1049 layer_tree_host_impl_->DrawTransform(), device_scale_factor(),
1056 current_page_scale_factor(), PageScaleLayer(), 1050 current_page_scale_factor(), PageScaleLayer(),
1057 InnerViewportScrollLayer(), OuterViewportScrollLayer(), 1051 InnerViewportScrollLayer(), OuterViewportScrollLayer(),
1058 elastic_overscroll()->Current(IsActiveTree()), 1052 elastic_overscroll()->Current(IsActiveTree()),
1059 OverscrollElasticityLayer(), resource_provider()->max_texture_size(), 1053 OverscrollElasticityLayer(), resource_provider()->max_texture_size(),
1060 can_render_to_separate_surface, 1054 can_render_to_separate_surface,
1061 settings().layer_transforms_should_scale_layer_contents, 1055 settings().layer_transforms_should_scale_layer_contents,
1062 settings().verify_clip_tree_calculations, 1056 settings().use_layer_lists, &render_surface_layer_list_,
1063 verify_visible_rect_calculations, &render_surface_layer_list_,
1064 &property_trees_); 1057 &property_trees_);
1065 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 1058 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
1066 if (const char* client_name = GetClientNameForMetrics()) { 1059 if (const char* client_name = GetClientNameForMetrics()) {
1067 UMA_HISTOGRAM_COUNTS( 1060 UMA_HISTOGRAM_COUNTS(
1068 base::StringPrintf( 1061 base::StringPrintf(
1069 "Compositing.%s.LayerTreeImpl.CalculateDrawPropertiesUs", 1062 "Compositing.%s.LayerTreeImpl.CalculateDrawPropertiesUs",
1070 client_name), 1063 client_name),
1071 timer.Elapsed().InMicroseconds()); 1064 timer.Elapsed().InMicroseconds());
1072 UMA_HISTOGRAM_COUNTS_100( 1065 UMA_HISTOGRAM_COUNTS_100(
1073 base::StringPrintf("Compositing.%s.NumRenderSurfaces", client_name), 1066 base::StringPrintf("Compositing.%s.NumRenderSurfaces", client_name),
(...skipping 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after
2151 2144
2152 void LayerTreeImpl::ResetAllChangeTracking() { 2145 void LayerTreeImpl::ResetAllChangeTracking() {
2153 layers_that_should_push_properties_.clear(); 2146 layers_that_should_push_properties_.clear();
2154 // Iterate over all layers, including masks. 2147 // Iterate over all layers, including masks.
2155 for (auto& layer : *layers_) 2148 for (auto& layer : *layers_)
2156 layer->ResetChangeTracking(); 2149 layer->ResetChangeTracking();
2157 property_trees_.ResetAllChangeTracking(); 2150 property_trees_.ResetAllChangeTracking();
2158 } 2151 }
2159 2152
2160 } // namespace cc 2153 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | cc/trees/layer_tree_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698