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

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

Issue 2354753003: cc : Compute visible rects dynamically (2) (Closed)
Patch Set: comments 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/draw_property_utils.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 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 } 551 }
552 552
553 draw_property_utils::BuildPropertyTreesAndComputeVisibleRects( 553 draw_property_utils::BuildPropertyTreesAndComputeVisibleRects(
554 inputs->root_layer, inputs->page_scale_layer, 554 inputs->root_layer, inputs->page_scale_layer,
555 inputs->inner_viewport_scroll_layer, 555 inputs->inner_viewport_scroll_layer,
556 inputs->outer_viewport_scroll_layer, 556 inputs->outer_viewport_scroll_layer,
557 inputs->elastic_overscroll_application_layer, 557 inputs->elastic_overscroll_application_layer,
558 inputs->elastic_overscroll, inputs->page_scale_factor, 558 inputs->elastic_overscroll, inputs->page_scale_factor,
559 inputs->device_scale_factor, gfx::Rect(inputs->device_viewport_size), 559 inputs->device_scale_factor, gfx::Rect(inputs->device_viewport_size),
560 inputs->device_transform, inputs->can_render_to_separate_surface, 560 inputs->device_transform, inputs->can_render_to_separate_surface,
561 inputs->verify_visible_rect_calculations, inputs->property_trees, 561 inputs->property_trees, &visible_layer_list);
562 &visible_layer_list);
563 562
564 // Property trees are normally constructed on the main thread and 563 // Property trees are normally constructed on the main thread and
565 // passed to compositor thread. Source to parent updates on them are not 564 // passed to compositor thread. Source to parent updates on them are not
566 // allowed in the compositor thread. Some tests build them on the 565 // allowed in the compositor thread. Some tests build them on the
567 // compositor thread, so we need to explicitly disallow source to parent 566 // compositor thread, so we need to explicitly disallow source to parent
568 // updates when they are built on compositor thread. 567 // updates when they are built on compositor thread.
569 inputs->property_trees->transform_tree 568 inputs->property_trees->transform_tree
570 .set_source_to_parent_updates_allowed(false); 569 .set_source_to_parent_updates_allowed(false);
571 if (should_measure_property_tree_performance) { 570 if (should_measure_property_tree_performance) {
572 TRACE_EVENT_END0( 571 TRACE_EVENT_END0(
(...skipping 21 matching lines...) Expand all
594 // Similarly, the device viewport and device transform are shared 593 // Similarly, the device viewport and device transform are shared
595 // by both trees. 594 // by both trees.
596 inputs->property_trees->clip_tree.SetViewportClip( 595 inputs->property_trees->clip_tree.SetViewportClip(
597 gfx::RectF(gfx::SizeF(inputs->device_viewport_size))); 596 gfx::RectF(gfx::SizeF(inputs->device_viewport_size)));
598 inputs->property_trees->transform_tree.SetDeviceTransform( 597 inputs->property_trees->transform_tree.SetDeviceTransform(
599 inputs->device_transform, inputs->root_layer->position()); 598 inputs->device_transform, inputs->root_layer->position());
600 inputs->property_trees->transform_tree.SetDeviceTransformScaleFactor( 599 inputs->property_trees->transform_tree.SetDeviceTransformScaleFactor(
601 inputs->device_transform); 600 inputs->device_transform);
602 draw_property_utils::ComputeVisibleRects( 601 draw_property_utils::ComputeVisibleRects(
603 inputs->root_layer, inputs->property_trees, 602 inputs->root_layer, inputs->property_trees,
604 inputs->can_render_to_separate_surface, 603 inputs->can_render_to_separate_surface, &visible_layer_list);
605 inputs->verify_visible_rect_calculations, &visible_layer_list);
606 break; 604 break;
607 } 605 }
608 } 606 }
609 607
610 if (should_measure_property_tree_performance) { 608 if (should_measure_property_tree_performance) {
611 TRACE_EVENT_BEGIN0(TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"), 609 TRACE_EVENT_BEGIN0(TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"),
612 "LayerTreeHostCommon::CalculateDrawProperties"); 610 "LayerTreeHostCommon::CalculateDrawProperties");
613 } 611 }
614 612
615 DCHECK(inputs->can_render_to_separate_surface == 613 DCHECK(inputs->can_render_to_separate_surface ==
616 inputs->property_trees->non_root_surfaces_enabled); 614 inputs->property_trees->non_root_surfaces_enabled);
617 for (LayerImpl* layer : visible_layer_list) { 615 for (LayerImpl* layer : visible_layer_list) {
618 draw_property_utils::ComputeLayerDrawProperties(layer, 616 draw_property_utils::ComputeLayerDrawProperties(layer,
619 inputs->property_trees); 617 inputs->property_trees);
620 } 618 }
621 619
622 CalculateRenderSurfaceLayerList( 620 CalculateRenderSurfaceLayerList(
623 inputs->root_layer->layer_tree_impl(), inputs->property_trees, 621 inputs->root_layer->layer_tree_impl(), inputs->property_trees,
624 inputs->render_surface_layer_list, inputs->can_render_to_separate_surface, 622 inputs->render_surface_layer_list, inputs->can_render_to_separate_surface,
625 inputs->max_texture_size); 623 inputs->max_texture_size);
626 624
627 if (inputs->verify_clip_tree_calculations) 625 if (inputs->verify_clip_tree_calculations)
628 draw_property_utils::VerifyClipTreeCalculations(visible_layer_list, 626 draw_property_utils::VerifyClipTreeCalculations(visible_layer_list,
629 inputs->property_trees); 627 inputs->property_trees);
628 if (inputs->verify_visible_rect_calculations)
629 draw_property_utils::VerifyVisibleRectsCalculations(visible_layer_list,
630 inputs->property_trees);
630 if (inputs->verify_transform_tree_calculations) 631 if (inputs->verify_transform_tree_calculations)
631 draw_property_utils::VerifyTransformTreeCalculations( 632 draw_property_utils::VerifyTransformTreeCalculations(
632 visible_layer_list, inputs->property_trees); 633 visible_layer_list, inputs->property_trees);
633 634
634 if (should_measure_property_tree_performance) { 635 if (should_measure_property_tree_performance) {
635 TRACE_EVENT_END0(TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"), 636 TRACE_EVENT_END0(TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"),
636 "LayerTreeHostCommon::CalculateDrawProperties"); 637 "LayerTreeHostCommon::CalculateDrawProperties");
637 } 638 }
638 639
639 // A root layer render_surface should always exist after 640 // A root layer render_surface should always exist after
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 722
722 PropertyTrees* GetPropertyTrees(Layer* layer) { 723 PropertyTrees* GetPropertyTrees(Layer* layer) {
723 return layer->GetLayerTree()->property_trees(); 724 return layer->GetLayerTree()->property_trees();
724 } 725 }
725 726
726 PropertyTrees* GetPropertyTrees(LayerImpl* layer) { 727 PropertyTrees* GetPropertyTrees(LayerImpl* layer) {
727 return layer->layer_tree_impl()->property_trees(); 728 return layer->layer_tree_impl()->property_trees();
728 } 729 }
729 730
730 } // namespace cc 731 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/draw_property_utils.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