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

Unified Diff: cc/surfaces/display.cc

Issue 2565783002: Moves ownership of the cc::Display's BeginFrameSource out of Display. (Closed)
Patch Set: rebase. Created 4 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/surfaces/display.h ('k') | cc/surfaces/display_scheduler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/surfaces/display.cc
diff --git a/cc/surfaces/display.cc b/cc/surfaces/display.cc
index a0ffb2ce35fce3f46f4c5674d1de15016926f006..5a097f81299bc36cc59fb0bafd5d2dbc411e8b9c 100644
--- a/cc/surfaces/display.cc
+++ b/cc/surfaces/display.cc
@@ -34,7 +34,7 @@ Display::Display(SharedBitmapManager* bitmap_manager,
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
const RendererSettings& settings,
const FrameSinkId& frame_sink_id,
- std::unique_ptr<BeginFrameSource> begin_frame_source,
+ BeginFrameSource* begin_frame_source,
std::unique_ptr<OutputSurface> output_surface,
std::unique_ptr<DisplayScheduler> scheduler,
std::unique_ptr<TextureMailboxDeleter> texture_mailbox_deleter)
@@ -42,15 +42,17 @@ Display::Display(SharedBitmapManager* bitmap_manager,
gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
settings_(settings),
frame_sink_id_(frame_sink_id),
- begin_frame_source_(std::move(begin_frame_source)),
+ begin_frame_source_(begin_frame_source),
output_surface_(std::move(output_surface)),
scheduler_(std::move(scheduler)),
texture_mailbox_deleter_(std::move(texture_mailbox_deleter)) {
DCHECK(output_surface_);
DCHECK_EQ(!scheduler_, !begin_frame_source_);
DCHECK(frame_sink_id_.is_valid());
- if (scheduler_)
+ if (scheduler_) {
scheduler_->SetClient(this);
+ scheduler_->SetBeginFrameSource(begin_frame_source);
+ }
}
Display::~Display() {
@@ -59,7 +61,7 @@ Display::~Display() {
if (auto* context = output_surface_->context_provider())
context->SetLostContextCallback(base::Closure());
if (begin_frame_source_)
- surface_manager_->UnregisterBeginFrameSource(begin_frame_source_.get());
+ surface_manager_->UnregisterBeginFrameSource(begin_frame_source_);
surface_manager_->RemoveObserver(this);
}
if (aggregator_) {
@@ -83,7 +85,7 @@ void Display::Initialize(DisplayClient* client,
// This must be done in Initialize() so that the caller can delay this until
// they are ready to receive a BeginFrameSource.
if (begin_frame_source_) {
- surface_manager_->RegisterBeginFrameSource(begin_frame_source_.get(),
+ surface_manager_->RegisterBeginFrameSource(begin_frame_source_,
frame_sink_id_);
}
« no previous file with comments | « cc/surfaces/display.h ('k') | cc/surfaces/display_scheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698