Chromium Code Reviews| Index: content/browser/compositor/gpu_process_transport_factory.cc |
| diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc |
| index 6e94f4867cd31d5f7bed294e0892d3544e709427..7dd8df2dad6f1676c7600cb2a20ee1169aa1b69c 100644 |
| --- a/content/browser/compositor/gpu_process_transport_factory.cc |
| +++ b/content/browser/compositor/gpu_process_transport_factory.cc |
| @@ -165,7 +165,7 @@ namespace content { |
| struct GpuProcessTransportFactory::PerCompositorData { |
| gpu::SurfaceHandle surface_handle = gpu::kNullSurfaceHandle; |
| BrowserCompositorOutputSurface* display_output_surface = nullptr; |
| - cc::SyntheticBeginFrameSource* begin_frame_source = nullptr; |
| + std::unique_ptr<cc::SyntheticBeginFrameSource> begin_frame_source; |
| ReflectorImpl* reflector = nullptr; |
| std::unique_ptr<cc::Display> display; |
| bool output_is_secure = false; |
| @@ -439,13 +439,12 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
| } |
| } |
| - std::unique_ptr<cc::SyntheticBeginFrameSource> begin_frame_source; |
| if (!compositor->GetRendererSettings().disable_display_vsync) { |
| - begin_frame_source.reset(new cc::DelayBasedBeginFrameSource( |
| + data->begin_frame_source.reset(new cc::DelayBasedBeginFrameSource( |
|
danakj
2016/08/30 01:10:56
I don't think you should put this into |data| unti
|
| base::MakeUnique<cc::DelayBasedTimeSource>( |
| compositor->task_runner().get()))); |
| } else { |
| - begin_frame_source.reset(new cc::BackToBackBeginFrameSource( |
| + data->begin_frame_source.reset(new cc::BackToBackBeginFrameSource( |
| base::MakeUnique<cc::DelayBasedTimeSource>( |
| compositor->task_runner().get()))); |
| } |
| @@ -471,7 +470,7 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
| display_output_surface = |
| base::WrapUnique(new SoftwareBrowserCompositorOutputSurface( |
| CreateSoftwareOutputDevice(compositor.get()), |
| - compositor->vsync_manager(), begin_frame_source.get())); |
| + compositor->vsync_manager(), data->begin_frame_source.get())); |
| } else { |
| DCHECK(context_provider); |
| const auto& capabilities = context_provider->ContextCapabilities(); |
| @@ -479,21 +478,21 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
| display_output_surface = |
| base::WrapUnique(new OffscreenBrowserCompositorOutputSurface( |
| context_provider, compositor->vsync_manager(), |
| - begin_frame_source.get(), |
| + data->begin_frame_source.get(), |
| std::unique_ptr<display_compositor:: |
| CompositorOverlayCandidateValidator>())); |
| } else if (capabilities.surfaceless) { |
| #if defined(OS_MACOSX) |
| display_output_surface = base::WrapUnique(new GpuOutputSurfaceMac( |
| context_provider, data->surface_handle, compositor->vsync_manager(), |
| - begin_frame_source.get(), |
| + data->begin_frame_source.get(), |
| CreateOverlayCandidateValidator(compositor->widget()), |
| GetGpuMemoryBufferManager())); |
| #else |
| display_output_surface = |
| base::WrapUnique(new GpuSurfacelessBrowserCompositorOutputSurface( |
| context_provider, data->surface_handle, |
| - compositor->vsync_manager(), begin_frame_source.get(), |
| + compositor->vsync_manager(), data->begin_frame_source.get(), |
| CreateOverlayCandidateValidator(compositor->widget()), |
| GL_TEXTURE_2D, GL_RGB, ui::DisplaySnapshot::PrimaryFormat(), |
| GetGpuMemoryBufferManager())); |
| @@ -511,13 +510,13 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
| display_output_surface = |
| base::WrapUnique(new GpuBrowserCompositorOutputSurface( |
| context_provider, compositor->vsync_manager(), |
| - begin_frame_source.get(), std::move(validator))); |
| + data->begin_frame_source.get(), std::move(validator))); |
| } else { |
| #if defined(USE_AURA) |
| display_output_surface = |
| base::WrapUnique(new MusBrowserCompositorOutputSurface( |
| compositor->window(), context_provider, |
| - compositor->vsync_manager(), begin_frame_source.get(), |
| + compositor->vsync_manager(), data->begin_frame_source.get(), |
| std::move(validator))); |
| #else |
| NOTREACHED(); |
| @@ -528,7 +527,6 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
| } |
| data->display_output_surface = display_output_surface.get(); |
| - data->begin_frame_source = begin_frame_source.get(); |
| if (data->reflector) |
| data->reflector->OnSourceSurfaceReady(data->display_output_surface); |
| @@ -538,14 +536,13 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
| #endif |
| std::unique_ptr<cc::DisplayScheduler> scheduler(new cc::DisplayScheduler( |
| - begin_frame_source.get(), compositor->task_runner().get(), |
| + data->begin_frame_source.get(), compositor->task_runner().get(), |
| display_output_surface->capabilities().max_frames_pending)); |
| // The Display owns and uses the |display_output_surface| created above. |
| data->display = base::MakeUnique<cc::Display>( |
|
danakj
2016/08/30 01:10:56
So just insert it into |data| after this, with a c
|
| - HostSharedBitmapManager::current(), |
| - GetGpuMemoryBufferManager(), |
| - compositor->GetRendererSettings(), std::move(begin_frame_source), |
| + HostSharedBitmapManager::current(), GetGpuMemoryBufferManager(), |
| + compositor->GetRendererSettings(), data->begin_frame_source.get(), |
| std::move(display_output_surface), std::move(scheduler), |
| base::MakeUnique<cc::TextureMailboxDeleter>( |
| compositor->task_runner().get())); |