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

Side by Side Diff: content/browser/compositor/delegated_frame_host.cc

Issue 1124523003: Revert of Enable BeginFrame scheduling on aura (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/browser/compositor/delegated_frame_host.h" 5 #include "content/browser/compositor/delegated_frame_host.h"
6 6
7 #include "base/callback_helpers.h" 7 #include "base/callback_helpers.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "cc/output/compositor_frame.h" 9 #include "cc/output/compositor_frame.h"
10 #include "cc/output/compositor_frame_ack.h" 10 #include "cc/output/compositor_frame_ack.h"
(...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after
881 can_lock_compositor_ = NO_PENDING_RENDERER_FRAME; 881 can_lock_compositor_ = NO_PENDING_RENDERER_FRAME;
882 } 882 }
883 } 883 }
884 884
885 void DelegatedFrameHost::OnCompositingShuttingDown(ui::Compositor* compositor) { 885 void DelegatedFrameHost::OnCompositingShuttingDown(ui::Compositor* compositor) {
886 DCHECK_EQ(compositor, compositor_); 886 DCHECK_EQ(compositor, compositor_);
887 ResetCompositor(); 887 ResetCompositor();
888 DCHECK(!compositor_); 888 DCHECK(!compositor_);
889 } 889 }
890 890
891 void DelegatedFrameHost::SetVSyncParameters(base::TimeTicks timebase, 891 void DelegatedFrameHost::OnUpdateVSyncParameters(
892 base::TimeDelta interval) { 892 base::TimeTicks timebase,
893 base::TimeDelta interval) {
893 vsync_timebase_ = timebase; 894 vsync_timebase_ = timebase;
894 vsync_interval_ = interval; 895 vsync_interval_ = interval;
896 if (client_->DelegatedFrameHostIsVisible())
897 client_->DelegatedFrameHostUpdateVSyncParameters(timebase, interval);
895 } 898 }
896 899
897 //////////////////////////////////////////////////////////////////////////////// 900 ////////////////////////////////////////////////////////////////////////////////
898 // DelegatedFrameHost, ImageTransportFactoryObserver implementation: 901 // DelegatedFrameHost, ImageTransportFactoryObserver implementation:
899 902
900 void DelegatedFrameHost::OnLostResources() { 903 void DelegatedFrameHost::OnLostResources() {
901 if (frame_provider_.get() || !surface_id_.is_null()) 904 if (frame_provider_.get() || !surface_id_.is_null())
902 EvictDelegatedFrame(); 905 EvictDelegatedFrame();
903 idle_frame_subscriber_textures_.clear(); 906 idle_frame_subscriber_textures_.clear();
904 yuv_readback_pipeline_.reset(); 907 yuv_readback_pipeline_.reset();
905 908
906 client_->DelegatedFrameHostOnLostCompositorResources(); 909 client_->DelegatedFrameHostOnLostCompositorResources();
907 } 910 }
908 911
909 //////////////////////////////////////////////////////////////////////////////// 912 ////////////////////////////////////////////////////////////////////////////////
910 // DelegatedFrameHost, private: 913 // DelegatedFrameHost, private:
911 914
912 DelegatedFrameHost::~DelegatedFrameHost() { 915 DelegatedFrameHost::~DelegatedFrameHost() {
913 DCHECK(!compositor_); 916 DCHECK(!compositor_);
914 ImageTransportFactory::GetInstance()->RemoveObserver(this); 917 ImageTransportFactory::GetInstance()->RemoveObserver(this);
915 918
916 if (!surface_id_.is_null()) 919 if (!surface_id_.is_null())
917 surface_factory_->Destroy(surface_id_); 920 surface_factory_->Destroy(surface_id_);
918 if (resource_collection_.get()) 921 if (resource_collection_.get())
919 resource_collection_->SetClient(NULL); 922 resource_collection_->SetClient(NULL);
923
924 DCHECK(!vsync_manager_.get());
920 } 925 }
921 926
922 void DelegatedFrameHost::RunOnCommitCallbacks() { 927 void DelegatedFrameHost::RunOnCommitCallbacks() {
923 for (std::vector<base::Closure>::const_iterator 928 for (std::vector<base::Closure>::const_iterator
924 it = on_compositing_did_commit_callbacks_.begin(); 929 it = on_compositing_did_commit_callbacks_.begin();
925 it != on_compositing_did_commit_callbacks_.end(); ++it) { 930 it != on_compositing_did_commit_callbacks_.end(); ++it) {
926 it->Run(); 931 it->Run();
927 } 932 }
928 on_compositing_did_commit_callbacks_.clear(); 933 on_compositing_did_commit_callbacks_.clear();
929 } 934 }
930 935
931 void DelegatedFrameHost::AddOnCommitCallbackAndDisableLocks( 936 void DelegatedFrameHost::AddOnCommitCallbackAndDisableLocks(
932 const base::Closure& callback) { 937 const base::Closure& callback) {
933 DCHECK(compositor_); 938 DCHECK(compositor_);
934 939
935 can_lock_compositor_ = NO_PENDING_COMMIT; 940 can_lock_compositor_ = NO_PENDING_COMMIT;
936 if (!callback.is_null()) 941 if (!callback.is_null())
937 on_compositing_did_commit_callbacks_.push_back(callback); 942 on_compositing_did_commit_callbacks_.push_back(callback);
938 } 943 }
939 944
940 void DelegatedFrameHost::SetCompositor(ui::Compositor* compositor) { 945 void DelegatedFrameHost::SetCompositor(ui::Compositor* compositor) {
941 DCHECK(!compositor_); 946 DCHECK(!compositor_);
942 if (!compositor) 947 if (!compositor)
943 return; 948 return;
944 compositor_ = compositor; 949 compositor_ = compositor;
945 compositor_->AddObserver(this); 950 compositor_->AddObserver(this);
951 DCHECK(!vsync_manager_.get());
952 vsync_manager_ = compositor_->vsync_manager();
953 vsync_manager_->AddObserver(this);
946 } 954 }
947 955
948 void DelegatedFrameHost::ResetCompositor() { 956 void DelegatedFrameHost::ResetCompositor() {
949 if (!compositor_) 957 if (!compositor_)
950 return; 958 return;
951 RunOnCommitCallbacks(); 959 RunOnCommitCallbacks();
952 if (resize_lock_) { 960 if (resize_lock_) {
953 resize_lock_.reset(); 961 resize_lock_.reset();
954 client_->DelegatedFrameHostResizeLockWasReleased(); 962 client_->DelegatedFrameHostResizeLockWasReleased();
955 } 963 }
956 if (compositor_->HasObserver(this)) 964 if (compositor_->HasObserver(this))
957 compositor_->RemoveObserver(this); 965 compositor_->RemoveObserver(this);
966 if (vsync_manager_.get()) {
967 vsync_manager_->RemoveObserver(this);
968 vsync_manager_ = NULL;
969 }
958 compositor_ = nullptr; 970 compositor_ = nullptr;
959 } 971 }
960 972
961 void DelegatedFrameHost::LockResources() { 973 void DelegatedFrameHost::LockResources() {
962 DCHECK(frame_provider_.get() || !surface_id_.is_null()); 974 DCHECK(frame_provider_.get() || !surface_id_.is_null());
963 delegated_frame_evictor_->LockFrame(); 975 delegated_frame_evictor_->LockFrame();
964 } 976 }
965 977
966 void DelegatedFrameHost::RequestCopyOfOutput( 978 void DelegatedFrameHost::RequestCopyOfOutput(
967 scoped_ptr<cc::CopyOutputRequest> request) { 979 scoped_ptr<cc::CopyOutputRequest> request) {
(...skipping 25 matching lines...) Expand all
993 cc::SurfaceManager* manager = factory->GetSurfaceManager(); 1005 cc::SurfaceManager* manager = factory->GetSurfaceManager();
994 new_layer->SetShowSurface( 1006 new_layer->SetShowSurface(
995 surface_id_, base::Bind(&SatisfyCallback, base::Unretained(manager)), 1007 surface_id_, base::Bind(&SatisfyCallback, base::Unretained(manager)),
996 base::Bind(&RequireCallback, base::Unretained(manager)), 1008 base::Bind(&RequireCallback, base::Unretained(manager)),
997 current_surface_size_, current_scale_factor_, 1009 current_surface_size_, current_scale_factor_,
998 current_frame_size_in_dip_); 1010 current_frame_size_in_dip_);
999 } 1011 }
1000 } 1012 }
1001 1013
1002 } // namespace content 1014 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/compositor/delegated_frame_host.h ('k') | content/browser/compositor/gpu_browser_compositor_output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698