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. |
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); |
} |
} |