OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/viz/frame_sinks/gpu_root_compositor_frame_sink.h" | 5 #include "components/viz/frame_sinks/gpu_root_compositor_frame_sink.h" |
6 | 6 |
7 #include "cc/surfaces/compositor_frame_sink_support.h" | 7 #include "cc/surfaces/compositor_frame_sink_support.h" |
8 #include "cc/surfaces/display.h" | 8 #include "cc/surfaces/display.h" |
9 | 9 |
10 namespace viz { | 10 namespace viz { |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 support_->EvictCurrentSurface(); | 79 support_->EvictCurrentSurface(); |
80 } | 80 } |
81 | 81 |
82 void GpuRootCompositorFrameSink::SetNeedsBeginFrame(bool needs_begin_frame) { | 82 void GpuRootCompositorFrameSink::SetNeedsBeginFrame(bool needs_begin_frame) { |
83 support_->SetNeedsBeginFrame(needs_begin_frame); | 83 support_->SetNeedsBeginFrame(needs_begin_frame); |
84 } | 84 } |
85 | 85 |
86 void GpuRootCompositorFrameSink::SubmitCompositorFrame( | 86 void GpuRootCompositorFrameSink::SubmitCompositorFrame( |
87 const cc::LocalSurfaceId& local_surface_id, | 87 const cc::LocalSurfaceId& local_surface_id, |
88 cc::CompositorFrame frame) { | 88 cc::CompositorFrame frame) { |
89 support_->SubmitCompositorFrame(local_surface_id, std::move(frame)); | 89 if (!support_->SubmitCompositorFrame(local_surface_id, std::move(frame))) { |
| 90 compositor_frame_sink_binding_.Close(); |
| 91 OnClientConnectionLost(); |
| 92 } |
90 } | 93 } |
91 | 94 |
92 void GpuRootCompositorFrameSink::BeginFrameDidNotSwap( | 95 void GpuRootCompositorFrameSink::BeginFrameDidNotSwap( |
93 const cc::BeginFrameAck& begin_frame_ack) { | 96 const cc::BeginFrameAck& begin_frame_ack) { |
94 support_->BeginFrameDidNotSwap(begin_frame_ack); | 97 support_->BeginFrameDidNotSwap(begin_frame_ack); |
95 } | 98 } |
96 | 99 |
97 void GpuRootCompositorFrameSink::ClaimTemporaryReference( | 100 void GpuRootCompositorFrameSink::ClaimTemporaryReference( |
98 const cc::SurfaceId& surface_id) { | 101 const cc::SurfaceId& surface_id) { |
99 support_->ClaimTemporaryReference(surface_id); | 102 support_->ClaimTemporaryReference(surface_id); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 } | 147 } |
145 | 148 |
146 void GpuRootCompositorFrameSink::OnPrivateConnectionLost() { | 149 void GpuRootCompositorFrameSink::OnPrivateConnectionLost() { |
147 private_connection_lost_ = true; | 150 private_connection_lost_ = true; |
148 // Request destruction of |this| only if both connections are lost. | 151 // Request destruction of |this| only if both connections are lost. |
149 delegate_->OnPrivateConnectionLost(support_->frame_sink_id(), | 152 delegate_->OnPrivateConnectionLost(support_->frame_sink_id(), |
150 client_connection_lost_); | 153 client_connection_lost_); |
151 } | 154 } |
152 | 155 |
153 } // namespace viz | 156 } // namespace viz |
OLD | NEW |