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

Side by Side Diff: content/renderer/gpu/render_widget_compositor.cc

Issue 2253143002: Revert of cc: Move data to LayerTree from LayerTreeHost. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@layer_tree_change
Patch Set: Created 4 years, 4 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "content/renderer/gpu/render_widget_compositor.h" 5 #include "content/renderer/gpu/render_widget_compositor.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <limits> 8 #include <limits>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 656
657 void RenderWidgetCompositor::SetNeedsCommit() { 657 void RenderWidgetCompositor::SetNeedsCommit() {
658 layer_tree_host_->SetNeedsCommit(); 658 layer_tree_host_->SetNeedsCommit();
659 } 659 }
660 660
661 void RenderWidgetCompositor::NotifyInputThrottledUntilCommit() { 661 void RenderWidgetCompositor::NotifyInputThrottledUntilCommit() {
662 layer_tree_host_->NotifyInputThrottledUntilCommit(); 662 layer_tree_host_->NotifyInputThrottledUntilCommit();
663 } 663 }
664 664
665 const cc::Layer* RenderWidgetCompositor::GetRootLayer() const { 665 const cc::Layer* RenderWidgetCompositor::GetRootLayer() const {
666 return layer_tree_host_->GetLayerTree()->root_layer(); 666 return layer_tree_host_->root_layer();
667 } 667 }
668 668
669 int RenderWidgetCompositor::ScheduleMicroBenchmark( 669 int RenderWidgetCompositor::ScheduleMicroBenchmark(
670 const std::string& name, 670 const std::string& name,
671 std::unique_ptr<base::Value> value, 671 std::unique_ptr<base::Value> value,
672 const base::Callback<void(std::unique_ptr<base::Value>)>& callback) { 672 const base::Callback<void(std::unique_ptr<base::Value>)>& callback) {
673 return layer_tree_host_->ScheduleMicroBenchmark(name, std::move(value), 673 return layer_tree_host_->ScheduleMicroBenchmark(name, std::move(value),
674 callback); 674 callback);
675 } 675 }
676 676
677 bool RenderWidgetCompositor::SendMessageToMicroBenchmark( 677 bool RenderWidgetCompositor::SendMessageToMicroBenchmark(
678 int id, 678 int id,
679 std::unique_ptr<base::Value> value) { 679 std::unique_ptr<base::Value> value) {
680 return layer_tree_host_->SendMessageToMicroBenchmark(id, std::move(value)); 680 return layer_tree_host_->SendMessageToMicroBenchmark(id, std::move(value));
681 } 681 }
682 682
683 void RenderWidgetCompositor::setRootLayer(const blink::WebLayer& layer) { 683 void RenderWidgetCompositor::setRootLayer(const blink::WebLayer& layer) {
684 layer_tree_host_->GetLayerTree()->SetRootLayer( 684 layer_tree_host_->SetRootLayer(
685 static_cast<const cc_blink::WebLayerImpl*>(&layer)->layer()); 685 static_cast<const cc_blink::WebLayerImpl*>(&layer)->layer());
686 } 686 }
687 687
688 void RenderWidgetCompositor::clearRootLayer() { 688 void RenderWidgetCompositor::clearRootLayer() {
689 layer_tree_host_->GetLayerTree()->SetRootLayer(scoped_refptr<cc::Layer>()); 689 layer_tree_host_->SetRootLayer(scoped_refptr<cc::Layer>());
690 } 690 }
691 691
692 void RenderWidgetCompositor::attachCompositorAnimationTimeline( 692 void RenderWidgetCompositor::attachCompositorAnimationTimeline(
693 cc::AnimationTimeline* compositor_timeline) { 693 cc::AnimationTimeline* compositor_timeline) {
694 DCHECK(layer_tree_host_->animation_host()); 694 DCHECK(layer_tree_host_->animation_host());
695 layer_tree_host_->animation_host()->AddAnimationTimeline(compositor_timeline); 695 layer_tree_host_->animation_host()->AddAnimationTimeline(compositor_timeline);
696 } 696 }
697 697
698 void RenderWidgetCompositor::detachCompositorAnimationTimeline( 698 void RenderWidgetCompositor::detachCompositorAnimationTimeline(
699 cc::AnimationTimeline* compositor_timeline) { 699 cc::AnimationTimeline* compositor_timeline) {
700 DCHECK(layer_tree_host_->animation_host()); 700 DCHECK(layer_tree_host_->animation_host());
701 layer_tree_host_->animation_host()->RemoveAnimationTimeline( 701 layer_tree_host_->animation_host()->RemoveAnimationTimeline(
702 compositor_timeline); 702 compositor_timeline);
703 } 703 }
704 704
705 void RenderWidgetCompositor::setViewportSize( 705 void RenderWidgetCompositor::setViewportSize(
706 const WebSize& device_viewport_size) { 706 const WebSize& device_viewport_size) {
707 layer_tree_host_->GetLayerTree()->SetViewportSize(device_viewport_size); 707 layer_tree_host_->SetViewportSize(device_viewport_size);
708 } 708 }
709 709
710 WebFloatPoint RenderWidgetCompositor::adjustEventPointForPinchZoom( 710 WebFloatPoint RenderWidgetCompositor::adjustEventPointForPinchZoom(
711 const WebFloatPoint& point) const { 711 const WebFloatPoint& point) const {
712 return point; 712 return point;
713 } 713 }
714 714
715 void RenderWidgetCompositor::setDeviceScaleFactor(float device_scale) { 715 void RenderWidgetCompositor::setDeviceScaleFactor(float device_scale) {
716 layer_tree_host_->GetLayerTree()->SetDeviceScaleFactor(device_scale); 716 layer_tree_host_->SetDeviceScaleFactor(device_scale);
717 } 717 }
718 718
719 void RenderWidgetCompositor::setBackgroundColor(blink::WebColor color) { 719 void RenderWidgetCompositor::setBackgroundColor(blink::WebColor color) {
720 layer_tree_host_->GetLayerTree()->set_background_color(color); 720 layer_tree_host_->set_background_color(color);
721 } 721 }
722 722
723 void RenderWidgetCompositor::setHasTransparentBackground(bool transparent) { 723 void RenderWidgetCompositor::setHasTransparentBackground(bool transparent) {
724 layer_tree_host_->GetLayerTree()->set_has_transparent_background(transparent); 724 layer_tree_host_->set_has_transparent_background(transparent);
725 } 725 }
726 726
727 void RenderWidgetCompositor::setVisible(bool visible) { 727 void RenderWidgetCompositor::setVisible(bool visible) {
728 if (never_visible_) 728 if (never_visible_)
729 return; 729 return;
730 730
731 layer_tree_host_->SetVisible(visible); 731 layer_tree_host_->SetVisible(visible);
732 } 732 }
733 733
734 void RenderWidgetCompositor::setPageScaleFactorAndLimits( 734 void RenderWidgetCompositor::setPageScaleFactorAndLimits(
735 float page_scale_factor, float minimum, float maximum) { 735 float page_scale_factor, float minimum, float maximum) {
736 layer_tree_host_->GetLayerTree()->SetPageScaleFactorAndLimits( 736 layer_tree_host_->SetPageScaleFactorAndLimits(
737 page_scale_factor, minimum, maximum); 737 page_scale_factor, minimum, maximum);
738 } 738 }
739 739
740 void RenderWidgetCompositor::startPageScaleAnimation( 740 void RenderWidgetCompositor::startPageScaleAnimation(
741 const blink::WebPoint& destination, 741 const blink::WebPoint& destination,
742 bool use_anchor, 742 bool use_anchor,
743 float new_page_scale, 743 float new_page_scale,
744 double duration_sec) { 744 double duration_sec) {
745 base::TimeDelta duration = base::TimeDelta::FromMicroseconds( 745 base::TimeDelta duration = base::TimeDelta::FromMicroseconds(
746 duration_sec * base::Time::kMicrosecondsPerSecond); 746 duration_sec * base::Time::kMicrosecondsPerSecond);
747 layer_tree_host_->GetLayerTree()->StartPageScaleAnimation( 747 layer_tree_host_->StartPageScaleAnimation(
748 gfx::Vector2d(destination.x, destination.y), use_anchor, new_page_scale, 748 gfx::Vector2d(destination.x, destination.y),
749 use_anchor,
750 new_page_scale,
749 duration); 751 duration);
750 } 752 }
751 753
752 bool RenderWidgetCompositor::hasPendingPageScaleAnimation() const { 754 bool RenderWidgetCompositor::hasPendingPageScaleAnimation() const {
753 return layer_tree_host_->GetLayerTree()->HasPendingPageScaleAnimation(); 755 return layer_tree_host_->HasPendingPageScaleAnimation();
754 } 756 }
755 757
756 void RenderWidgetCompositor::heuristicsForGpuRasterizationUpdated( 758 void RenderWidgetCompositor::heuristicsForGpuRasterizationUpdated(
757 bool matches_heuristics) { 759 bool matches_heuristics) {
758 layer_tree_host_->SetHasGpuRasterizationTrigger(matches_heuristics); 760 layer_tree_host_->SetHasGpuRasterizationTrigger(matches_heuristics);
759 } 761 }
760 762
761 void RenderWidgetCompositor::setNeedsAnimate() { 763 void RenderWidgetCompositor::setNeedsAnimate() {
762 layer_tree_host_->SetNeedsAnimate(); 764 layer_tree_host_->SetNeedsAnimate();
763 layer_tree_host_->SetNeedsUpdateLayers(); 765 layer_tree_host_->SetNeedsUpdateLayers();
764 } 766 }
765 767
766 void RenderWidgetCompositor::setNeedsBeginFrame() { 768 void RenderWidgetCompositor::setNeedsBeginFrame() {
767 layer_tree_host_->SetNeedsAnimate(); 769 layer_tree_host_->SetNeedsAnimate();
768 } 770 }
769 771
770 void RenderWidgetCompositor::setNeedsCompositorUpdate() { 772 void RenderWidgetCompositor::setNeedsCompositorUpdate() {
771 layer_tree_host_->SetNeedsUpdateLayers(); 773 layer_tree_host_->SetNeedsUpdateLayers();
772 } 774 }
773 775
774 void RenderWidgetCompositor::didStopFlinging() { 776 void RenderWidgetCompositor::didStopFlinging() {
775 layer_tree_host_->DidStopFlinging(); 777 layer_tree_host_->DidStopFlinging();
776 } 778 }
777 779
778 void RenderWidgetCompositor::registerViewportLayers( 780 void RenderWidgetCompositor::registerViewportLayers(
779 const blink::WebLayer* overscrollElasticityLayer, 781 const blink::WebLayer* overscrollElasticityLayer,
780 const blink::WebLayer* pageScaleLayer, 782 const blink::WebLayer* pageScaleLayer,
781 const blink::WebLayer* innerViewportScrollLayer, 783 const blink::WebLayer* innerViewportScrollLayer,
782 const blink::WebLayer* outerViewportScrollLayer) { 784 const blink::WebLayer* outerViewportScrollLayer) {
783 layer_tree_host_->GetLayerTree()->RegisterViewportLayers( 785 layer_tree_host_->RegisterViewportLayers(
784 // TODO(bokan): This check can probably be removed now, but it looks 786 // TODO(bokan): This check can probably be removed now, but it looks
785 // like overscroll elasticity may still be NULL until VisualViewport 787 // like overscroll elasticity may still be NULL until VisualViewport
786 // registers its layers. 788 // registers its layers.
787 // The scroll elasticity layer will only exist when using pinch virtual 789 // The scroll elasticity layer will only exist when using pinch virtual
788 // viewports. 790 // viewports.
789 overscrollElasticityLayer 791 overscrollElasticityLayer
790 ? static_cast<const cc_blink::WebLayerImpl*>( 792 ? static_cast<const cc_blink::WebLayerImpl*>(
791 overscrollElasticityLayer) 793 overscrollElasticityLayer)->layer()
792 ->layer()
793 : NULL, 794 : NULL,
794 static_cast<const cc_blink::WebLayerImpl*>(pageScaleLayer)->layer(), 795 static_cast<const cc_blink::WebLayerImpl*>(pageScaleLayer)->layer(),
795 static_cast<const cc_blink::WebLayerImpl*>(innerViewportScrollLayer) 796 static_cast<const cc_blink::WebLayerImpl*>(innerViewportScrollLayer)
796 ->layer(), 797 ->layer(),
797 // TODO(bokan): This check can probably be removed now, but it looks 798 // TODO(bokan): This check can probably be removed now, but it looks
798 // like overscroll elasticity may still be NULL until VisualViewport 799 // like overscroll elasticity may still be NULL until VisualViewport
799 // registers its layers. 800 // registers its layers.
800 // The outer viewport layer will only exist when using pinch virtual 801 // The outer viewport layer will only exist when using pinch virtual
801 // viewports. 802 // viewports.
802 outerViewportScrollLayer 803 outerViewportScrollLayer
803 ? static_cast<const cc_blink::WebLayerImpl*>(outerViewportScrollLayer) 804 ? static_cast<const cc_blink::WebLayerImpl*>(outerViewportScrollLayer)
804 ->layer() 805 ->layer()
805 : NULL); 806 : NULL);
806 } 807 }
807 808
808 void RenderWidgetCompositor::clearViewportLayers() { 809 void RenderWidgetCompositor::clearViewportLayers() {
809 layer_tree_host_->GetLayerTree()->RegisterViewportLayers( 810 layer_tree_host_->RegisterViewportLayers(
810 scoped_refptr<cc::Layer>(), scoped_refptr<cc::Layer>(), 811 scoped_refptr<cc::Layer>(), scoped_refptr<cc::Layer>(),
811 scoped_refptr<cc::Layer>(), scoped_refptr<cc::Layer>()); 812 scoped_refptr<cc::Layer>(), scoped_refptr<cc::Layer>());
812 } 813 }
813 814
814 void RenderWidgetCompositor::registerSelection( 815 void RenderWidgetCompositor::registerSelection(
815 const blink::WebSelection& selection) { 816 const blink::WebSelection& selection) {
816 layer_tree_host_->GetLayerTree()->RegisterSelection( 817 layer_tree_host_->RegisterSelection(ConvertWebSelection(selection));
817 ConvertWebSelection(selection));
818 } 818 }
819 819
820 void RenderWidgetCompositor::clearSelection() { 820 void RenderWidgetCompositor::clearSelection() {
821 cc::LayerSelection empty_selection; 821 cc::LayerSelection empty_selection;
822 layer_tree_host_->GetLayerTree()->RegisterSelection(empty_selection); 822 layer_tree_host_->RegisterSelection(empty_selection);
823 } 823 }
824 824
825 void RenderWidgetCompositor::setMutatorClient( 825 void RenderWidgetCompositor::setMutatorClient(
826 std::unique_ptr<blink::WebCompositorMutatorClient> client) { 826 std::unique_ptr<blink::WebCompositorMutatorClient> client) {
827 TRACE_EVENT0("compositor-worker", "RenderWidgetCompositor::setMutatorClient"); 827 TRACE_EVENT0("compositor-worker", "RenderWidgetCompositor::setMutatorClient");
828 layer_tree_host_->SetLayerTreeMutator(std::move(client)); 828 layer_tree_host_->SetLayerTreeMutator(std::move(client));
829 } 829 }
830 830
831 static_assert(static_cast<cc::EventListenerClass>( 831 static_assert(static_cast<cc::EventListenerClass>(
832 blink::WebEventListenerClass::TouchStartOrMove) == 832 blink::WebEventListenerClass::TouchStartOrMove) ==
(...skipping 17 matching lines...) Expand all
850 cc::EventListenerProperties::kBlocking, 850 cc::EventListenerProperties::kBlocking,
851 "EventListener and WebEventListener enums must match"); 851 "EventListener and WebEventListener enums must match");
852 static_assert(static_cast<cc::EventListenerProperties>( 852 static_assert(static_cast<cc::EventListenerProperties>(
853 blink::WebEventListenerProperties::BlockingAndPassive) == 853 blink::WebEventListenerProperties::BlockingAndPassive) ==
854 cc::EventListenerProperties::kBlockingAndPassive, 854 cc::EventListenerProperties::kBlockingAndPassive,
855 "EventListener and WebEventListener enums must match"); 855 "EventListener and WebEventListener enums must match");
856 856
857 void RenderWidgetCompositor::setEventListenerProperties( 857 void RenderWidgetCompositor::setEventListenerProperties(
858 blink::WebEventListenerClass eventClass, 858 blink::WebEventListenerClass eventClass,
859 blink::WebEventListenerProperties properties) { 859 blink::WebEventListenerProperties properties) {
860 layer_tree_host_->GetLayerTree()->SetEventListenerProperties( 860 layer_tree_host_->SetEventListenerProperties(
861 static_cast<cc::EventListenerClass>(eventClass), 861 static_cast<cc::EventListenerClass>(eventClass),
862 static_cast<cc::EventListenerProperties>(properties)); 862 static_cast<cc::EventListenerProperties>(properties));
863 } 863 }
864 864
865 blink::WebEventListenerProperties 865 blink::WebEventListenerProperties
866 RenderWidgetCompositor::eventListenerProperties( 866 RenderWidgetCompositor::eventListenerProperties(
867 blink::WebEventListenerClass event_class) const { 867 blink::WebEventListenerClass event_class) const {
868 return static_cast<blink::WebEventListenerProperties>( 868 return static_cast<blink::WebEventListenerProperties>(
869 layer_tree_host_->GetLayerTree()->event_listener_properties( 869 layer_tree_host_->event_listener_properties(
870 static_cast<cc::EventListenerClass>(event_class))); 870 static_cast<cc::EventListenerClass>(event_class)));
871 } 871 }
872 872
873 void RenderWidgetCompositor::setHaveScrollEventHandlers(bool has_handlers) { 873 void RenderWidgetCompositor::setHaveScrollEventHandlers(bool has_handlers) {
874 layer_tree_host_->GetLayerTree()->SetHaveScrollEventHandlers(has_handlers); 874 layer_tree_host_->SetHaveScrollEventHandlers(has_handlers);
875 } 875 }
876 876
877 bool RenderWidgetCompositor::haveScrollEventHandlers() const { 877 bool RenderWidgetCompositor::haveScrollEventHandlers() const {
878 return layer_tree_host_->GetLayerTree()->have_scroll_event_handlers(); 878 return layer_tree_host_->have_scroll_event_handlers();
879 } 879 }
880 880
881 void CompositeAndReadbackAsyncCallback( 881 void CompositeAndReadbackAsyncCallback(
882 blink::WebCompositeAndReadbackAsyncCallback* callback, 882 blink::WebCompositeAndReadbackAsyncCallback* callback,
883 std::unique_ptr<cc::CopyOutputResult> result) { 883 std::unique_ptr<cc::CopyOutputResult> result) {
884 if (result->HasBitmap()) { 884 if (result->HasBitmap()) {
885 std::unique_ptr<SkBitmap> result_bitmap = result->TakeBitmap(); 885 std::unique_ptr<SkBitmap> result_bitmap = result->TakeBitmap();
886 callback->didCompositeAndReadback(*result_bitmap); 886 callback->didCompositeAndReadback(*result_bitmap);
887 } else { 887 } else {
888 callback->didCompositeAndReadback(SkBitmap()); 888 callback->didCompositeAndReadback(SkBitmap());
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
996 void RenderWidgetCompositor::updateTopControlsState( 996 void RenderWidgetCompositor::updateTopControlsState(
997 WebTopControlsState constraints, 997 WebTopControlsState constraints,
998 WebTopControlsState current, 998 WebTopControlsState current,
999 bool animate) { 999 bool animate) {
1000 layer_tree_host_->UpdateTopControlsState(ConvertTopControlsState(constraints), 1000 layer_tree_host_->UpdateTopControlsState(ConvertTopControlsState(constraints),
1001 ConvertTopControlsState(current), 1001 ConvertTopControlsState(current),
1002 animate); 1002 animate);
1003 } 1003 }
1004 1004
1005 void RenderWidgetCompositor::setTopControlsHeight(float height, bool shrink) { 1005 void RenderWidgetCompositor::setTopControlsHeight(float height, bool shrink) {
1006 layer_tree_host_->GetLayerTree()->SetTopControlsHeight(height, shrink); 1006 layer_tree_host_->SetTopControlsHeight(height, shrink);
1007 } 1007 }
1008 1008
1009 void RenderWidgetCompositor::setTopControlsShownRatio(float ratio) { 1009 void RenderWidgetCompositor::setTopControlsShownRatio(float ratio) {
1010 layer_tree_host_->GetLayerTree()->SetTopControlsShownRatio(ratio); 1010 layer_tree_host_->SetTopControlsShownRatio(ratio);
1011 } 1011 }
1012 1012
1013 void RenderWidgetCompositor::WillBeginMainFrame() { 1013 void RenderWidgetCompositor::WillBeginMainFrame() {
1014 delegate_->WillBeginCompositorFrame(); 1014 delegate_->WillBeginCompositorFrame();
1015 } 1015 }
1016 1016
1017 void RenderWidgetCompositor::DidBeginMainFrame() { 1017 void RenderWidgetCompositor::DidBeginMainFrame() {
1018 } 1018 }
1019 1019
1020 void RenderWidgetCompositor::BeginMainFrame(const cc::BeginFrameArgs& args) { 1020 void RenderWidgetCompositor::BeginMainFrame(const cc::BeginFrameArgs& args) {
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 if (!deserialized->ParseFromArray(proto.data(), signed_size)) { 1142 if (!deserialized->ParseFromArray(proto.data(), signed_size)) {
1143 LOG(ERROR) << "Unable to parse compositor proto."; 1143 LOG(ERROR) << "Unable to parse compositor proto.";
1144 return; 1144 return;
1145 } 1145 }
1146 1146
1147 remote_proto_channel_receiver_->OnProtoReceived(std::move(deserialized)); 1147 remote_proto_channel_receiver_->OnProtoReceived(std::move(deserialized));
1148 } 1148 }
1149 1149
1150 void RenderWidgetCompositor::SetPaintedDeviceScaleFactor( 1150 void RenderWidgetCompositor::SetPaintedDeviceScaleFactor(
1151 float device_scale) { 1151 float device_scale) {
1152 layer_tree_host_->GetLayerTree()->SetPaintedDeviceScaleFactor(device_scale); 1152 layer_tree_host_->SetPaintedDeviceScaleFactor(device_scale);
1153 } 1153 }
1154 1154
1155 } // namespace content 1155 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/compositor_impl_android.cc ('k') | content/renderer/render_view_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698