Chromium Code Reviews| Index: ui/aura/mus/window_compositor_frame_sink.cc |
| diff --git a/ui/aura/mus/window_compositor_frame_sink.cc b/ui/aura/mus/window_compositor_frame_sink.cc |
| index 1490457984d89ace1218ba6eede5a6ce22928b8c..eabe858e34eff40a4b960c8f271e62542535b734 100644 |
| --- a/ui/aura/mus/window_compositor_frame_sink.cc |
| +++ b/ui/aura/mus/window_compositor_frame_sink.cc |
| @@ -64,14 +64,23 @@ void WindowCompositorFrameSink::SubmitCompositorFrame( |
| DCHECK(thread_checker_->CalledOnValidThread()); |
| if (!compositor_frame_sink_) |
| return; |
| - compositor_frame_sink_->SubmitCompositorFrame(std::move(frame)); |
| + |
| + gfx::Size frame_size; |
| + if (!frame.render_pass_list.empty()) |
|
sadrul
2016/11/22 19:22:25
Is it valid for a frame to have no render-pass? (a
Fady Samuel
2016/11/22 19:24:38
The pattern of submitting an empty CompositorFrame
sadrul
2016/11/22 19:25:48
I see. Should that reset the frame/frame-sink size
|
| + frame_size = frame.render_pass_list[0]->output_rect.size(); |
| + if (!local_frame_id_.is_valid() || frame_size != last_submitted_frame_size_) |
| + local_frame_id_ = id_allocator_.GenerateId(); |
| + |
| + compositor_frame_sink_->SubmitCompositorFrame(local_frame_id_, |
| + std::move(frame)); |
| + |
| + last_submitted_frame_size_ = frame_size; |
| } |
| WindowCompositorFrameSink::WindowCompositorFrameSink( |
| scoped_refptr<cc::ContextProvider> context_provider, |
| gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
| - mojo::InterfacePtrInfo<cc::mojom::MojoCompositorFrameSink> |
| - compositor_frame_sink_info, |
| + cc::mojom::MojoCompositorFrameSinkPtrInfo compositor_frame_sink_info, |
| cc::mojom::MojoCompositorFrameSinkClientRequest client_request) |
| : cc::CompositorFrameSink(std::move(context_provider), |
| nullptr, |