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

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

Issue 1778853003: Fold BeginFrameSource::SetClientReady into AddObserver (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scheduler_always_external
Patch Set: Created 4 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
« no previous file with comments | « content/renderer/gpu/compositor_external_begin_frame_source.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/renderer/gpu/compositor_external_begin_frame_source.h" 5 #include "content/renderer/gpu/compositor_external_begin_frame_source.h"
6 6
7 #include "content/common/view_messages.h" 7 #include "content/common/view_messages.h"
8 #include "ipc/ipc_sync_channel.h" 8 #include "ipc/ipc_sync_channel.h"
9 #include "ipc/ipc_sync_message_filter.h" 9 #include "ipc/ipc_sync_message_filter.h"
10 10
(...skipping 25 matching lines...) Expand all
36 bool needs_begin_frames) { 36 bool needs_begin_frames) {
37 DCHECK(CalledOnValidThread()); 37 DCHECK(CalledOnValidThread());
38 if (!needs_begin_frames) 38 if (!needs_begin_frames)
39 missed_begin_frame_args_ = cc::BeginFrameArgs(); 39 missed_begin_frame_args_ = cc::BeginFrameArgs();
40 Send(new ViewHostMsg_SetNeedsBeginFrames(routing_id_, needs_begin_frames)); 40 Send(new ViewHostMsg_SetNeedsBeginFrames(routing_id_, needs_begin_frames));
41 } 41 }
42 42
43 void CompositorExternalBeginFrameSource::AddObserver( 43 void CompositorExternalBeginFrameSource::AddObserver(
44 cc::BeginFrameObserver* obs) { 44 cc::BeginFrameObserver* obs) {
45 DCHECK(CalledOnValidThread()); 45 DCHECK(CalledOnValidThread());
46 SetClientReady();
46 BeginFrameSourceBase::AddObserver(obs); 47 BeginFrameSourceBase::AddObserver(obs);
47 // Send a MISSED begin frame if necessary. 48 // Send a MISSED begin frame if necessary.
48 if (missed_begin_frame_args_.IsValid()) { 49 if (missed_begin_frame_args_.IsValid()) {
49 cc::BeginFrameArgs last_args = obs->LastUsedBeginFrameArgs(); 50 cc::BeginFrameArgs last_args = obs->LastUsedBeginFrameArgs();
50 if (!last_args.IsValid() || 51 if (!last_args.IsValid() ||
51 (missed_begin_frame_args_.frame_time > last_args.frame_time)) { 52 (missed_begin_frame_args_.frame_time > last_args.frame_time)) {
52 obs->OnBeginFrame(missed_begin_frame_args_); 53 obs->OnBeginFrame(missed_begin_frame_args_);
53 } 54 }
54 } 55 }
55 } 56 }
56 57
57 void CompositorExternalBeginFrameSource::SetClientReady() { 58 void CompositorExternalBeginFrameSource::SetClientReady() {
58 DCHECK(CalledOnValidThread()); 59 DCHECK(CalledOnValidThread());
59 DCHECK(!begin_frame_source_proxy_.get()); 60 if (begin_frame_source_proxy_)
61 return;
60 begin_frame_source_proxy_ = 62 begin_frame_source_proxy_ =
61 new CompositorExternalBeginFrameSourceProxy(this); 63 new CompositorExternalBeginFrameSourceProxy(this);
62 begin_frame_source_filter_handler_ = base::Bind( 64 begin_frame_source_filter_handler_ = base::Bind(
63 &CompositorExternalBeginFrameSourceProxy::OnMessageReceived, 65 &CompositorExternalBeginFrameSourceProxy::OnMessageReceived,
64 begin_frame_source_proxy_); 66 begin_frame_source_proxy_);
65 begin_frame_source_filter_->AddHandlerOnCompositorThread( 67 begin_frame_source_filter_->AddHandlerOnCompositorThread(
66 routing_id_, 68 routing_id_,
67 begin_frame_source_filter_handler_); 69 begin_frame_source_filter_handler_);
68 } 70 }
69 71
(...skipping 12 matching lines...) Expand all
82 missed_begin_frame_args_ = args; 84 missed_begin_frame_args_ = args;
83 missed_begin_frame_args_.type = cc::BeginFrameArgs::MISSED; 85 missed_begin_frame_args_.type = cc::BeginFrameArgs::MISSED;
84 CallOnBeginFrame(args); 86 CallOnBeginFrame(args);
85 } 87 }
86 88
87 bool CompositorExternalBeginFrameSource::Send(IPC::Message* message) { 89 bool CompositorExternalBeginFrameSource::Send(IPC::Message* message) {
88 return message_sender_->Send(message); 90 return message_sender_->Send(message);
89 } 91 }
90 92
91 } // namespace content 93 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/gpu/compositor_external_begin_frame_source.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698