Chromium Code Reviews| Index: services/ui/ws/gpu_compositor_frame_sink.cc |
| diff --git a/services/ui/ws/gpu_compositor_frame_sink.cc b/services/ui/ws/gpu_compositor_frame_sink.cc |
| index f6357580e4433d05e95ec8f9d04083f6a462aeec..74d87303249ce55656c19fbaed5ac208a74e02c7 100644 |
| --- a/services/ui/ws/gpu_compositor_frame_sink.cc |
| +++ b/services/ui/ws/gpu_compositor_frame_sink.cc |
| @@ -65,17 +65,22 @@ void GpuCompositorFrameSink::SetNeedsBeginFrame(bool needs_begin_frame) { |
| UpdateNeedsBeginFramesInternal(); |
| } |
| -void GpuCompositorFrameSink::SubmitCompositorFrame(cc::CompositorFrame frame) { |
| - gfx::Size frame_size = frame.render_pass_list[0]->output_rect.size(); |
| +void GpuCompositorFrameSink::SubmitCompositorFrame( |
| + const cc::LocalFrameId& local_frame_id, |
| + cc::CompositorFrame frame) { |
| // If the size of the CompostiorFrame has changed then destroy the existing |
| // Surface and create a new one of the appropriate size. |
| - if (!local_frame_id_.is_valid() || frame_size != last_submitted_frame_size_) { |
| + if (local_frame_id_ != local_frame_id) { |
| if (local_frame_id_.is_valid()) |
| surface_factory_.Destroy(local_frame_id_); |
| - local_frame_id_ = surface_id_allocator_.GenerateId(); |
| + local_frame_id_ = local_frame_id; |
| surface_factory_.Create(local_frame_id_); |
| - if (display_) |
| + if (display_) { |
| + gfx::Size frame_size; |
| + if (!frame.render_pass_list.empty()) |
| + frame_size = frame.render_pass_list[0]->output_rect.size(); |
| display_->Resize(frame_size); |
|
sadrul
2016/11/22 19:53:29
Do this Resize only if |frame_size| is non-empty?
Fady Samuel
2016/11/22 20:17:26
Done.
|
| + } |
| } |
| ++ack_pending_count_; |
| surface_factory_.SubmitCompositorFrame( |
| @@ -86,7 +91,6 @@ void GpuCompositorFrameSink::SubmitCompositorFrame(cc::CompositorFrame frame) { |
| display_->SetLocalFrameId(local_frame_id_, |
| frame.metadata.device_scale_factor); |
| } |
| - last_submitted_frame_size_ = frame_size; |
| } |
| void GpuCompositorFrameSink::DidReceiveCompositorFrameAck() { |