Chromium Code Reviews| Index: content/renderer/android/synchronous_compositor_proxy.cc |
| diff --git a/content/renderer/android/synchronous_compositor_proxy.cc b/content/renderer/android/synchronous_compositor_proxy.cc |
| index b98594971718f4806d20170f2822e8883631f1e7..08ec48d4f1544847926eb7ccf35cce89cdc4eed7 100644 |
| --- a/content/renderer/android/synchronous_compositor_proxy.cc |
| +++ b/content/renderer/android/synchronous_compositor_proxy.cc |
| @@ -218,29 +218,32 @@ void SynchronousCompositorProxy::DemandDrawHw( |
| if (inside_receive_) { |
| // Did not swap. |
| cc::CompositorFrame empty_frame; |
| - SendDemandDrawHwReply(&empty_frame, reply_message); |
| + SendDemandDrawHwReply(&empty_frame, 0u, reply_message); |
| inside_receive_ = false; |
| } else { |
| DeliverMessages(); |
| } |
| } |
| -void SynchronousCompositorProxy::SwapBuffersHw(cc::CompositorFrame* frame) { |
| +void SynchronousCompositorProxy::SwapBuffersHw(uint32_t output_surface_id, |
| + cc::CompositorFrame* frame) { |
| DCHECK(inside_receive_); |
| DCHECK(hardware_draw_reply_); |
| DCHECK(frame); |
| - SendDemandDrawHwReply(frame, hardware_draw_reply_); |
| + SendDemandDrawHwReply(frame, output_surface_id, hardware_draw_reply_); |
| inside_receive_ = false; |
| } |
| void SynchronousCompositorProxy::SendDemandDrawHwReply( |
| cc::CompositorFrame* frame, |
| + uint32_t output_surface_id, |
| IPC::Message* reply_message) { |
| SyncCompositorCommonRendererParams common_renderer_params; |
| PopulateCommonParams(&common_renderer_params); |
| // Not using WriteParams because cc::CompositorFrame is not copy-able. |
|
dcheng
2016/03/22 07:22:37
I don't think WriteParams requires that the input
boliu
2016/03/22 15:25:50
Switched to WriteReplyParams.
Honestly don't reme
|
| IPC::ParamTraits<SyncCompositorCommonRendererParams>::Write( |
| reply_message, common_renderer_params); |
| + IPC::ParamTraits<uint32_t>::Write(reply_message, output_surface_id); |
| IPC::ParamTraits<cc::CompositorFrame>::Write(reply_message, *frame); |
| Send(reply_message); |
| } |
| @@ -366,11 +369,12 @@ void SynchronousCompositorProxy::SendDemandDrawSwReply( |
| Send(reply_message); |
| } |
| -void SynchronousCompositorProxy::SwapBuffers(cc::CompositorFrame* frame) { |
| +void SynchronousCompositorProxy::SwapBuffers(uint32_t output_surface_id, |
| + cc::CompositorFrame* frame) { |
| DCHECK(hardware_draw_reply_ || software_draw_reply_); |
| DCHECK(!(hardware_draw_reply_ && software_draw_reply_)); |
| if (hardware_draw_reply_) { |
| - SwapBuffersHw(frame); |
| + SwapBuffersHw(output_surface_id, frame); |
| } else if (software_draw_reply_) { |
| SwapBuffersSw(frame); |
| } |
| @@ -409,7 +413,9 @@ void SynchronousCompositorProxy::ProcessCommonParams( |
| begin_frame_source_->SetBeginFrameSourcePaused( |
| common_params.begin_frame_source_paused); |
| if (!common_params.ack.resources.empty()) { |
| - output_surface_->ReturnResources(common_params.ack); |
| + output_surface_->ReturnResources( |
| + common_params.output_surface_id_for_returned_resources, |
| + common_params.ack); |
| } |
| } |