| Index: components/mus/surfaces/surfaces_context_provider.cc
|
| diff --git a/components/mus/surfaces/surfaces_context_provider.cc b/components/mus/surfaces/surfaces_context_provider.cc
|
| index 2e91b9897c17332a5a34e6ca830824c1dc2e9684..e4cd311cc0a8638b6a139ee66157a4e15882c6ad 100644
|
| --- a/components/mus/surfaces/surfaces_context_provider.cc
|
| +++ b/components/mus/surfaces/surfaces_context_provider.cc
|
| @@ -60,6 +60,12 @@ SurfacesContextProvider::SurfacesContextProvider(
|
| service->gpu_channel_local(), widget, gfx::Size(),
|
| shared_command_buffer, stream_id, stream_priority, attributes,
|
| active_url, gpu_preference, task_runner);
|
| + command_buffer_proxy_impl_->SetSwapBuffersCompletionCallback(
|
| + base::Bind(&SurfacesContextProvider::OnGpuSwapBuffersCompleted,
|
| + base::Unretained(this)));
|
| + command_buffer_proxy_impl_->SetUpdateVSyncParametersCallback(
|
| + base::Bind(&SurfacesContextProvider::OnUpdateVSyncParameters,
|
| + base::Unretained(this)));
|
| }
|
| }
|
|
|
| @@ -170,6 +176,24 @@ void SurfacesContextProvider::GpuCompletedSwapBuffers(gfx::SwapResult result) {
|
| }
|
| }
|
|
|
| +void SurfacesContextProvider::OnGpuSwapBuffersCompleted(
|
| + const std::vector<ui::LatencyInfo>& latency_info,
|
| + gfx::SwapResult result,
|
| + const gpu::GpuProcessHostedCALayerTreeParamsMac* params_mac) {
|
| + if (!swap_buffers_completion_callback_.is_null()) {
|
| + swap_buffers_completion_callback_.Run(result);
|
| + }
|
| +}
|
| +
|
| +void SurfacesContextProvider::OnUpdateVSyncParameters(
|
| + base::TimeTicks timebase,
|
| + base::TimeDelta interval) {
|
| + if (delegate_) {
|
| + delegate_->OnVSyncParametersUpdated(timebase.ToInternalValue(),
|
| + interval.ToInternalValue());
|
| + }
|
| +}
|
| +
|
| void SurfacesContextProvider::SetSwapBuffersCompletionCallback(
|
| gl::GLSurface::SwapCompletionCallback callback) {
|
| swap_buffers_completion_callback_ = callback;
|
|
|