| 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..820b577cf0448036d65fe554a9df45063fc4c936 100644
|
| --- a/content/renderer/android/synchronous_compositor_proxy.cc
|
| +++ b/content/renderer/android/synchronous_compositor_proxy.cc
|
| @@ -218,30 +218,30 @@ 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.
|
| - IPC::ParamTraits<SyncCompositorCommonRendererParams>::Write(
|
| - reply_message, common_renderer_params);
|
| - IPC::ParamTraits<cc::CompositorFrame>::Write(reply_message, *frame);
|
| + SyncCompositorMsg_DemandDrawHw::WriteReplyParams(
|
| + reply_message, common_renderer_params, output_surface_id, *frame);
|
| Send(reply_message);
|
| }
|
|
|
| @@ -358,19 +358,17 @@ void SynchronousCompositorProxy::SendDemandDrawSwReply(
|
| IPC::Message* reply_message) {
|
| SyncCompositorCommonRendererParams common_renderer_params;
|
| PopulateCommonParams(&common_renderer_params);
|
| - // Not using WriteParams because cc::CompositorFrame is not copy-able.
|
| - IPC::ParamTraits<bool>::Write(reply_message, success);
|
| - IPC::ParamTraits<SyncCompositorCommonRendererParams>::Write(
|
| - reply_message, common_renderer_params);
|
| - IPC::ParamTraits<cc::CompositorFrame>::Write(reply_message, *frame);
|
| + SyncCompositorMsg_DemandDrawSw::WriteReplyParams(
|
| + reply_message, success, common_renderer_params, *frame);
|
| 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 +407,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);
|
| }
|
| }
|
|
|
|
|