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

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

Issue 2334003003: cc : Compute visible rects dynamically (1) (Closed)
Patch Set: comment Created 4 years, 3 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 903 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 layer->SetElementId(LayerIdToElementIdForTesting(layer->id())); 914 layer->SetElementId(LayerIdToElementIdForTesting(layer->id()));
915 } 915 }
916 916
917 void LayerTreeImpl::SetElementIdsForTesting() { 917 void LayerTreeImpl::SetElementIdsForTesting() {
918 LayerListIterator<LayerImpl> it(root_layer_for_testing_); 918 LayerListIterator<LayerImpl> it(root_layer_for_testing_);
919 for (; it != LayerListIterator<LayerImpl>(nullptr); ++it) { 919 for (; it != LayerListIterator<LayerImpl>(nullptr); ++it) {
920 SetElementIdForTesting(*it); 920 SetElementIdForTesting(*it);
921 } 921 }
922 } 922 }
923 923
924 bool LayerTreeImpl::UpdateDrawProperties(bool update_lcd_text) { 924 bool LayerTreeImpl::UpdateDrawProperties(
925 bool update_lcd_text,
926 bool force_skip_verify_visible_rect_calculations) {
925 if (!needs_update_draw_properties_) 927 if (!needs_update_draw_properties_)
926 return true; 928 return true;
927 929
928 // Calling UpdateDrawProperties must clear this flag, so there can be no 930 // Calling UpdateDrawProperties must clear this flag, so there can be no
929 // early outs before this. 931 // early outs before this.
930 needs_update_draw_properties_ = false; 932 needs_update_draw_properties_ = false;
931 933
932 // For max_texture_size. When a new output surface is received the needs 934 // For max_texture_size. When a new output surface is received the needs
933 // update draw properties flag is set again. 935 // update draw properties flag is set again.
934 if (!layer_tree_host_impl_->compositor_frame_sink()) 936 if (!layer_tree_host_impl_->compositor_frame_sink())
935 return false; 937 return false;
936 938
937 // Clear this after the renderer early out, as it should still be 939 // Clear this after the renderer early out, as it should still be
938 // possible to hit test even without a renderer. 940 // possible to hit test even without a renderer.
939 render_surface_layer_list_.clear(); 941 render_surface_layer_list_.clear();
940 942
941 if (layer_list_.empty()) 943 if (layer_list_.empty())
942 return false; 944 return false;
943 945
944 { 946 {
945 base::ElapsedTimer timer; 947 base::ElapsedTimer timer;
946 TRACE_EVENT2( 948 TRACE_EVENT2(
947 "cc", "LayerTreeImpl::UpdateDrawProperties::CalculateDrawProperties", 949 "cc", "LayerTreeImpl::UpdateDrawProperties::CalculateDrawProperties",
948 "IsActive", IsActiveTree(), "SourceFrameNumber", source_frame_number_); 950 "IsActive", IsActiveTree(), "SourceFrameNumber", source_frame_number_);
949 bool can_render_to_separate_surface = 951 bool can_render_to_separate_surface =
950 (!is_in_resourceless_software_draw_mode()); 952 (!is_in_resourceless_software_draw_mode());
951 953
954 // We verify visible rect calculations whenever we verify clip tree
955 // calculations except when this function is explicitly passed a flag asking
956 // us to skip it.
957 bool verify_visible_rect_calculations =
958 force_skip_verify_visible_rect_calculations
959 ? false
960 : settings().verify_clip_tree_calculations;
952 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs( 961 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs(
953 layer_list_[0], DrawViewportSize(), 962 layer_list_[0], DrawViewportSize(),
954 layer_tree_host_impl_->DrawTransform(), device_scale_factor(), 963 layer_tree_host_impl_->DrawTransform(), device_scale_factor(),
955 current_page_scale_factor(), PageScaleLayer(), 964 current_page_scale_factor(), PageScaleLayer(),
956 InnerViewportScrollLayer(), OuterViewportScrollLayer(), 965 InnerViewportScrollLayer(), OuterViewportScrollLayer(),
957 elastic_overscroll()->Current(IsActiveTree()), 966 elastic_overscroll()->Current(IsActiveTree()),
958 OverscrollElasticityLayer(), resource_provider()->max_texture_size(), 967 OverscrollElasticityLayer(), resource_provider()->max_texture_size(),
959 can_render_to_separate_surface, 968 can_render_to_separate_surface,
960 settings().layer_transforms_should_scale_layer_contents, 969 settings().layer_transforms_should_scale_layer_contents,
961 settings().verify_clip_tree_calculations, 970 settings().verify_clip_tree_calculations,
971 verify_visible_rect_calculations,
962 settings().verify_transform_tree_calculations, 972 settings().verify_transform_tree_calculations,
963 &render_surface_layer_list_, &property_trees_); 973 &render_surface_layer_list_, &property_trees_);
964 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 974 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
965 if (const char* client_name = GetClientNameForMetrics()) { 975 if (const char* client_name = GetClientNameForMetrics()) {
966 UMA_HISTOGRAM_COUNTS( 976 UMA_HISTOGRAM_COUNTS(
967 base::StringPrintf( 977 base::StringPrintf(
968 "Compositing.%s.LayerTreeImpl.CalculateDrawPropertiesUs", 978 "Compositing.%s.LayerTreeImpl.CalculateDrawPropertiesUs",
969 client_name), 979 client_name),
970 timer.Elapsed().InMicroseconds()); 980 timer.Elapsed().InMicroseconds());
971 UMA_HISTOGRAM_COUNTS_100( 981 UMA_HISTOGRAM_COUNTS_100(
(...skipping 1101 matching lines...) Expand 10 before | Expand all | Expand 10 after
2073 2083
2074 void LayerTreeImpl::ResetAllChangeTracking() { 2084 void LayerTreeImpl::ResetAllChangeTracking() {
2075 layers_that_should_push_properties_.clear(); 2085 layers_that_should_push_properties_.clear();
2076 // Iterate over all layers, including masks and replicas. 2086 // Iterate over all layers, including masks and replicas.
2077 for (auto& layer : *layers_) 2087 for (auto& layer : *layers_)
2078 layer->ResetChangeTracking(); 2088 layer->ResetChangeTracking();
2079 property_trees_.ResetAllChangeTracking(); 2089 property_trees_.ResetAllChangeTracking();
2080 } 2090 }
2081 2091
2082 } // namespace cc 2092 } // 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