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

Side by Side Diff: blimp/client/app/compositor/browser_compositor.cc

Issue 2286273003: Make cc::Display not own its BeginFrameSource (Closed)
Patch Set: Created 4 years, 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "blimp/client/app/compositor/browser_compositor.h" 5 #include "blimp/client/app/compositor/browser_compositor.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "base/threading/thread_task_runner_handle.h" 8 #include "base/threading/thread_task_runner_handle.h"
9 #include "blimp/client/feature/compositor/blimp_context_provider.h" 9 #include "blimp/client/feature/compositor/blimp_context_provider.h"
10 #include "blimp/client/feature/compositor/blimp_gpu_memory_buffer_manager.h" 10 #include "blimp/client/feature/compositor/blimp_gpu_memory_buffer_manager.h"
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 DCHECK_NE(gfx::kNullAcceleratedWidget, widget_); 187 DCHECK_NE(gfx::kNullAcceleratedWidget, widget_);
188 188
189 scoped_refptr<cc::ContextProvider> context_provider = 189 scoped_refptr<cc::ContextProvider> context_provider =
190 BlimpContextProvider::Create( 190 BlimpContextProvider::Create(
191 widget_, BrowserCompositor::GetGpuMemoryBufferManager()); 191 widget_, BrowserCompositor::GetGpuMemoryBufferManager());
192 192
193 std::unique_ptr<cc::OutputSurface> display_output_surface = 193 std::unique_ptr<cc::OutputSurface> display_output_surface =
194 base::MakeUnique<DisplayOutputSurface>(context_provider); 194 base::MakeUnique<DisplayOutputSurface>(context_provider);
195 195
196 auto* task_runner = base::ThreadTaskRunnerHandle::Get().get(); 196 auto* task_runner = base::ThreadTaskRunnerHandle::Get().get();
197 std::unique_ptr<cc::SyntheticBeginFrameSource> begin_frame_source( 197 begin_frame_source_.reset(new cc::DelayBasedBeginFrameSource(
198 new cc::DelayBasedBeginFrameSource( 198 base::MakeUnique<cc::DelayBasedTimeSource>(task_runner)));
199 base::MakeUnique<cc::DelayBasedTimeSource>(task_runner)));
200 std::unique_ptr<cc::DisplayScheduler> scheduler(new cc::DisplayScheduler( 199 std::unique_ptr<cc::DisplayScheduler> scheduler(new cc::DisplayScheduler(
201 begin_frame_source.get(), task_runner, 200 begin_frame_source_.get(), task_runner,
202 display_output_surface->capabilities().max_frames_pending)); 201 display_output_surface->capabilities().max_frames_pending));
203 202
204 display_ = base::MakeUnique<cc::Display>( 203 display_ = base::MakeUnique<cc::Display>(
205 nullptr /*shared_bitmap_manager*/, 204 nullptr /*shared_bitmap_manager*/,
206 BrowserCompositor::GetGpuMemoryBufferManager(), 205 BrowserCompositor::GetGpuMemoryBufferManager(),
207 host_->settings().renderer_settings, std::move(begin_frame_source), 206 host_->settings().renderer_settings, begin_frame_source_.get(),
208 std::move(display_output_surface), std::move(scheduler), 207 std::move(display_output_surface), std::move(scheduler),
209 base::MakeUnique<cc::TextureMailboxDeleter>(task_runner)); 208 base::MakeUnique<cc::TextureMailboxDeleter>(task_runner));
210 display_->SetVisible(true); 209 display_->SetVisible(true);
211 display_->Resize(viewport_size_in_px_); 210 display_->Resize(viewport_size_in_px_);
212 211
213 // The Browser compositor and display share the same context provider. 212 // The Browser compositor and display share the same context provider.
214 std::unique_ptr<cc::OutputSurface> delegated_output_surface = 213 std::unique_ptr<cc::OutputSurface> delegated_output_surface =
215 base::MakeUnique<cc::SurfaceDisplayOutputSurface>( 214 base::MakeUnique<cc::SurfaceDisplayOutputSurface>(
216 BrowserCompositor::GetSurfaceManager(), surface_id_allocator_.get(), 215 BrowserCompositor::GetSurfaceManager(), surface_id_allocator_.get(),
217 display_.get(), context_provider, nullptr); 216 display_.get(), context_provider, nullptr);
218 217
219 host_->SetOutputSurface(std::move(delegated_output_surface)); 218 host_->SetOutputSurface(std::move(delegated_output_surface));
220 } 219 }
221 220
222 } // namespace client 221 } // namespace client
223 } // namespace blimp 222 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698