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

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

Issue 1040813002: Revert of Enable BeginFrame scheduling on aura (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 860 matching lines...) Expand 10 before | Expand all | Expand 10 after
871 can_lock_compositor_ = NO_PENDING_RENDERER_FRAME; 871 can_lock_compositor_ = NO_PENDING_RENDERER_FRAME;
872 } 872 }
873 } 873 }
874 874
875 void DelegatedFrameHost::OnCompositingShuttingDown(ui::Compositor* compositor) { 875 void DelegatedFrameHost::OnCompositingShuttingDown(ui::Compositor* compositor) {
876 DCHECK_EQ(compositor, compositor_); 876 DCHECK_EQ(compositor, compositor_);
877 ResetCompositor(); 877 ResetCompositor();
878 DCHECK(!compositor_); 878 DCHECK(!compositor_);
879 } 879 }
880 880
881 void DelegatedFrameHost::SetVSyncParameters(base::TimeTicks timebase, 881 void DelegatedFrameHost::OnUpdateVSyncParameters(
882 base::TimeDelta interval) { 882 base::TimeTicks timebase,
883 base::TimeDelta interval) {
883 vsync_timebase_ = timebase; 884 vsync_timebase_ = timebase;
884 vsync_interval_ = interval; 885 vsync_interval_ = interval;
886 if (client_->DelegatedFrameHostIsVisible())
887 client_->DelegatedFrameHostUpdateVSyncParameters(timebase, interval);
885 } 888 }
886 889
887 //////////////////////////////////////////////////////////////////////////////// 890 ////////////////////////////////////////////////////////////////////////////////
888 // DelegatedFrameHost, ImageTransportFactoryObserver implementation: 891 // DelegatedFrameHost, ImageTransportFactoryObserver implementation:
889 892
890 void DelegatedFrameHost::OnLostResources() { 893 void DelegatedFrameHost::OnLostResources() {
891 if (frame_provider_.get() || !surface_id_.is_null()) 894 if (frame_provider_.get() || !surface_id_.is_null())
892 EvictDelegatedFrame(); 895 EvictDelegatedFrame();
893 idle_frame_subscriber_textures_.clear(); 896 idle_frame_subscriber_textures_.clear();
894 yuv_readback_pipeline_.reset(); 897 yuv_readback_pipeline_.reset();
895 898
896 client_->DelegatedFrameHostOnLostCompositorResources(); 899 client_->DelegatedFrameHostOnLostCompositorResources();
897 } 900 }
898 901
899 //////////////////////////////////////////////////////////////////////////////// 902 ////////////////////////////////////////////////////////////////////////////////
900 // DelegatedFrameHost, private: 903 // DelegatedFrameHost, private:
901 904
902 DelegatedFrameHost::~DelegatedFrameHost() { 905 DelegatedFrameHost::~DelegatedFrameHost() {
903 DCHECK(!compositor_); 906 DCHECK(!compositor_);
904 ImageTransportFactory::GetInstance()->RemoveObserver(this); 907 ImageTransportFactory::GetInstance()->RemoveObserver(this);
905 908
906 if (!surface_id_.is_null()) 909 if (!surface_id_.is_null())
907 surface_factory_->Destroy(surface_id_); 910 surface_factory_->Destroy(surface_id_);
908 if (resource_collection_.get()) 911 if (resource_collection_.get())
909 resource_collection_->SetClient(NULL); 912 resource_collection_->SetClient(NULL);
913
914 DCHECK(!vsync_manager_.get());
910 } 915 }
911 916
912 void DelegatedFrameHost::RunOnCommitCallbacks() { 917 void DelegatedFrameHost::RunOnCommitCallbacks() {
913 for (std::vector<base::Closure>::const_iterator 918 for (std::vector<base::Closure>::const_iterator
914 it = on_compositing_did_commit_callbacks_.begin(); 919 it = on_compositing_did_commit_callbacks_.begin();
915 it != on_compositing_did_commit_callbacks_.end(); ++it) { 920 it != on_compositing_did_commit_callbacks_.end(); ++it) {
916 it->Run(); 921 it->Run();
917 } 922 }
918 on_compositing_did_commit_callbacks_.clear(); 923 on_compositing_did_commit_callbacks_.clear();
919 } 924 }
920 925
921 void DelegatedFrameHost::AddOnCommitCallbackAndDisableLocks( 926 void DelegatedFrameHost::AddOnCommitCallbackAndDisableLocks(
922 const base::Closure& callback) { 927 const base::Closure& callback) {
923 DCHECK(compositor_); 928 DCHECK(compositor_);
924 929
925 can_lock_compositor_ = NO_PENDING_COMMIT; 930 can_lock_compositor_ = NO_PENDING_COMMIT;
926 if (!callback.is_null()) 931 if (!callback.is_null())
927 on_compositing_did_commit_callbacks_.push_back(callback); 932 on_compositing_did_commit_callbacks_.push_back(callback);
928 } 933 }
929 934
930 void DelegatedFrameHost::SetCompositor(ui::Compositor* compositor) { 935 void DelegatedFrameHost::SetCompositor(ui::Compositor* compositor) {
931 DCHECK(!compositor_); 936 DCHECK(!compositor_);
932 if (!compositor) 937 if (!compositor)
933 return; 938 return;
934 compositor_ = compositor; 939 compositor_ = compositor;
935 compositor_->AddObserver(this); 940 compositor_->AddObserver(this);
941 DCHECK(!vsync_manager_.get());
942 vsync_manager_ = compositor_->vsync_manager();
943 vsync_manager_->AddObserver(this);
936 } 944 }
937 945
938 void DelegatedFrameHost::ResetCompositor() { 946 void DelegatedFrameHost::ResetCompositor() {
939 if (!compositor_) 947 if (!compositor_)
940 return; 948 return;
941 RunOnCommitCallbacks(); 949 RunOnCommitCallbacks();
942 if (resize_lock_) { 950 if (resize_lock_) {
943 resize_lock_.reset(); 951 resize_lock_.reset();
944 client_->DelegatedFrameHostResizeLockWasReleased(); 952 client_->DelegatedFrameHostResizeLockWasReleased();
945 } 953 }
946 if (compositor_->HasObserver(this)) 954 if (compositor_->HasObserver(this))
947 compositor_->RemoveObserver(this); 955 compositor_->RemoveObserver(this);
956 if (vsync_manager_.get()) {
957 vsync_manager_->RemoveObserver(this);
958 vsync_manager_ = NULL;
959 }
948 compositor_ = nullptr; 960 compositor_ = nullptr;
949 } 961 }
950 962
951 void DelegatedFrameHost::LockResources() { 963 void DelegatedFrameHost::LockResources() {
952 DCHECK(frame_provider_.get() || !surface_id_.is_null()); 964 DCHECK(frame_provider_.get() || !surface_id_.is_null());
953 delegated_frame_evictor_->LockFrame(); 965 delegated_frame_evictor_->LockFrame();
954 } 966 }
955 967
956 void DelegatedFrameHost::RequestCopyOfOutput( 968 void DelegatedFrameHost::RequestCopyOfOutput(
957 scoped_ptr<cc::CopyOutputRequest> request) { 969 scoped_ptr<cc::CopyOutputRequest> request) {
(...skipping 25 matching lines...) Expand all
983 cc::SurfaceManager* manager = factory->GetSurfaceManager(); 995 cc::SurfaceManager* manager = factory->GetSurfaceManager();
984 new_layer->SetShowSurface( 996 new_layer->SetShowSurface(
985 surface_id_, base::Bind(&SatisfyCallback, base::Unretained(manager)), 997 surface_id_, base::Bind(&SatisfyCallback, base::Unretained(manager)),
986 base::Bind(&RequireCallback, base::Unretained(manager)), 998 base::Bind(&RequireCallback, base::Unretained(manager)),
987 current_surface_size_, current_scale_factor_, 999 current_surface_size_, current_scale_factor_,
988 current_frame_size_in_dip_); 1000 current_frame_size_in_dip_);
989 } 1001 }
990 } 1002 }
991 1003
992 } // namespace content 1004 } // 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