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

Side by Side Diff: cc/trees/layer_tree_host_common.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_host_common.h ('k') | cc/trees/layer_tree_host_common_perftest.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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 float page_scale_factor, 76 float page_scale_factor,
77 const LayerImpl* page_scale_layer, 77 const LayerImpl* page_scale_layer,
78 const LayerImpl* inner_viewport_scroll_layer, 78 const LayerImpl* inner_viewport_scroll_layer,
79 const LayerImpl* outer_viewport_scroll_layer, 79 const LayerImpl* outer_viewport_scroll_layer,
80 const gfx::Vector2dF& elastic_overscroll, 80 const gfx::Vector2dF& elastic_overscroll,
81 const LayerImpl* elastic_overscroll_application_layer, 81 const LayerImpl* elastic_overscroll_application_layer,
82 int max_texture_size, 82 int max_texture_size,
83 bool can_render_to_separate_surface, 83 bool can_render_to_separate_surface,
84 bool can_adjust_raster_scales, 84 bool can_adjust_raster_scales,
85 bool verify_clip_tree_calculations, 85 bool verify_clip_tree_calculations,
86 bool verify_visible_rect_calculations,
86 bool verify_transform_tree_calculations, 87 bool verify_transform_tree_calculations,
87 LayerImplList* render_surface_layer_list, 88 LayerImplList* render_surface_layer_list,
88 PropertyTrees* property_trees) 89 PropertyTrees* property_trees)
89 : root_layer(root_layer), 90 : root_layer(root_layer),
90 device_viewport_size(device_viewport_size), 91 device_viewport_size(device_viewport_size),
91 device_transform(device_transform), 92 device_transform(device_transform),
92 device_scale_factor(device_scale_factor), 93 device_scale_factor(device_scale_factor),
93 page_scale_factor(page_scale_factor), 94 page_scale_factor(page_scale_factor),
94 page_scale_layer(page_scale_layer), 95 page_scale_layer(page_scale_layer),
95 inner_viewport_scroll_layer(inner_viewport_scroll_layer), 96 inner_viewport_scroll_layer(inner_viewport_scroll_layer),
96 outer_viewport_scroll_layer(outer_viewport_scroll_layer), 97 outer_viewport_scroll_layer(outer_viewport_scroll_layer),
97 elastic_overscroll(elastic_overscroll), 98 elastic_overscroll(elastic_overscroll),
98 elastic_overscroll_application_layer( 99 elastic_overscroll_application_layer(
99 elastic_overscroll_application_layer), 100 elastic_overscroll_application_layer),
100 max_texture_size(max_texture_size), 101 max_texture_size(max_texture_size),
101 can_render_to_separate_surface(can_render_to_separate_surface), 102 can_render_to_separate_surface(can_render_to_separate_surface),
102 can_adjust_raster_scales(can_adjust_raster_scales), 103 can_adjust_raster_scales(can_adjust_raster_scales),
103 verify_clip_tree_calculations(verify_clip_tree_calculations), 104 verify_clip_tree_calculations(verify_clip_tree_calculations),
105 verify_visible_rect_calculations(verify_visible_rect_calculations),
104 verify_transform_tree_calculations(verify_transform_tree_calculations), 106 verify_transform_tree_calculations(verify_transform_tree_calculations),
105 render_surface_layer_list(render_surface_layer_list), 107 render_surface_layer_list(render_surface_layer_list),
106 property_trees(property_trees) {} 108 property_trees(property_trees) {}
107 109
108 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting:: 110 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting::
109 CalcDrawPropsImplInputsForTesting(LayerImpl* root_layer, 111 CalcDrawPropsImplInputsForTesting(LayerImpl* root_layer,
110 const gfx::Size& device_viewport_size, 112 const gfx::Size& device_viewport_size,
111 const gfx::Transform& device_transform, 113 const gfx::Transform& device_transform,
112 float device_scale_factor, 114 float device_scale_factor,
113 LayerImplList* render_surface_layer_list) 115 LayerImplList* render_surface_layer_list)
114 : CalcDrawPropsImplInputs(root_layer, 116 : CalcDrawPropsImplInputs(root_layer,
115 device_viewport_size, 117 device_viewport_size,
116 device_transform, 118 device_transform,
117 device_scale_factor, 119 device_scale_factor,
118 1.f, 120 1.f,
119 NULL, 121 NULL,
120 NULL, 122 NULL,
121 NULL, 123 NULL,
122 gfx::Vector2dF(), 124 gfx::Vector2dF(),
123 NULL, 125 NULL,
124 std::numeric_limits<int>::max() / 2, 126 std::numeric_limits<int>::max() / 2,
125 true, 127 true,
126 false, 128 false,
127 true, 129 true,
128 true, 130 true,
131 true,
129 render_surface_layer_list, 132 render_surface_layer_list,
130 GetPropertyTrees(root_layer)) { 133 GetPropertyTrees(root_layer)) {
131 DCHECK(root_layer); 134 DCHECK(root_layer);
132 DCHECK(render_surface_layer_list); 135 DCHECK(render_surface_layer_list);
133 } 136 }
134 137
135 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting:: 138 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting::
136 CalcDrawPropsImplInputsForTesting(LayerImpl* root_layer, 139 CalcDrawPropsImplInputsForTesting(LayerImpl* root_layer,
137 const gfx::Size& device_viewport_size, 140 const gfx::Size& device_viewport_size,
138 const gfx::Transform& device_transform, 141 const gfx::Transform& device_transform,
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 } 551 }
549 552
550 draw_property_utils::BuildPropertyTreesAndComputeVisibleRects( 553 draw_property_utils::BuildPropertyTreesAndComputeVisibleRects(
551 inputs->root_layer, inputs->page_scale_layer, 554 inputs->root_layer, inputs->page_scale_layer,
552 inputs->inner_viewport_scroll_layer, 555 inputs->inner_viewport_scroll_layer,
553 inputs->outer_viewport_scroll_layer, 556 inputs->outer_viewport_scroll_layer,
554 inputs->elastic_overscroll_application_layer, 557 inputs->elastic_overscroll_application_layer,
555 inputs->elastic_overscroll, inputs->page_scale_factor, 558 inputs->elastic_overscroll, inputs->page_scale_factor,
556 inputs->device_scale_factor, gfx::Rect(inputs->device_viewport_size), 559 inputs->device_scale_factor, gfx::Rect(inputs->device_viewport_size),
557 inputs->device_transform, inputs->can_render_to_separate_surface, 560 inputs->device_transform, inputs->can_render_to_separate_surface,
558 inputs->property_trees, &visible_layer_list); 561 inputs->verify_visible_rect_calculations, inputs->property_trees,
562 &visible_layer_list);
559 563
560 // Property trees are normally constructed on the main thread and 564 // Property trees are normally constructed on the main thread and
561 // passed to compositor thread. Source to parent updates on them are not 565 // passed to compositor thread. Source to parent updates on them are not
562 // allowed in the compositor thread. Some tests build them on the 566 // allowed in the compositor thread. Some tests build them on the
563 // compositor thread, so we need to explicitly disallow source to parent 567 // compositor thread, so we need to explicitly disallow source to parent
564 // updates when they are built on compositor thread. 568 // updates when they are built on compositor thread.
565 inputs->property_trees->transform_tree 569 inputs->property_trees->transform_tree
566 .set_source_to_parent_updates_allowed(false); 570 .set_source_to_parent_updates_allowed(false);
567 if (should_measure_property_tree_performance) { 571 if (should_measure_property_tree_performance) {
568 TRACE_EVENT_END0( 572 TRACE_EVENT_END0(
(...skipping 21 matching lines...) Expand all
590 // Similarly, the device viewport and device transform are shared 594 // Similarly, the device viewport and device transform are shared
591 // by both trees. 595 // by both trees.
592 inputs->property_trees->clip_tree.SetViewportClip( 596 inputs->property_trees->clip_tree.SetViewportClip(
593 gfx::RectF(gfx::SizeF(inputs->device_viewport_size))); 597 gfx::RectF(gfx::SizeF(inputs->device_viewport_size)));
594 inputs->property_trees->transform_tree.SetDeviceTransform( 598 inputs->property_trees->transform_tree.SetDeviceTransform(
595 inputs->device_transform, inputs->root_layer->position()); 599 inputs->device_transform, inputs->root_layer->position());
596 inputs->property_trees->transform_tree.SetDeviceTransformScaleFactor( 600 inputs->property_trees->transform_tree.SetDeviceTransformScaleFactor(
597 inputs->device_transform); 601 inputs->device_transform);
598 draw_property_utils::ComputeVisibleRects( 602 draw_property_utils::ComputeVisibleRects(
599 inputs->root_layer, inputs->property_trees, 603 inputs->root_layer, inputs->property_trees,
600 inputs->can_render_to_separate_surface, &visible_layer_list); 604 inputs->can_render_to_separate_surface,
605 inputs->verify_visible_rect_calculations, &visible_layer_list);
601 break; 606 break;
602 } 607 }
603 } 608 }
604 609
605 if (should_measure_property_tree_performance) { 610 if (should_measure_property_tree_performance) {
606 TRACE_EVENT_BEGIN0(TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"), 611 TRACE_EVENT_BEGIN0(TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"),
607 "LayerTreeHostCommon::CalculateDrawProperties"); 612 "LayerTreeHostCommon::CalculateDrawProperties");
608 } 613 }
609 614
610 DCHECK(inputs->can_render_to_separate_surface == 615 DCHECK(inputs->can_render_to_separate_surface ==
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 721
717 PropertyTrees* GetPropertyTrees(Layer* layer) { 722 PropertyTrees* GetPropertyTrees(Layer* layer) {
718 return layer->GetLayerTree()->property_trees(); 723 return layer->GetLayerTree()->property_trees();
719 } 724 }
720 725
721 PropertyTrees* GetPropertyTrees(LayerImpl* layer) { 726 PropertyTrees* GetPropertyTrees(LayerImpl* layer) {
722 return layer->layer_tree_impl()->property_trees(); 727 return layer->layer_tree_impl()->property_trees();
723 } 728 }
724 729
725 } // namespace cc 730 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_common.h ('k') | cc/trees/layer_tree_host_common_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698