| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "components/display_compositor/gpu_display_compositor_frame_sink.h" | |
| 6 | |
| 7 namespace display_compositor { | |
| 8 | |
| 9 GpuDisplayCompositorFrameSink::GpuDisplayCompositorFrameSink( | |
| 10 GpuCompositorFrameSinkDelegate* delegate, | |
| 11 cc::SurfaceManager* surface_manager, | |
| 12 const cc::FrameSinkId& frame_sink_id, | |
| 13 std::unique_ptr<cc::Display> display, | |
| 14 std::unique_ptr<cc::BeginFrameSource> begin_frame_source, | |
| 15 cc::mojom::MojoCompositorFrameSinkAssociatedRequest request, | |
| 16 cc::mojom::MojoCompositorFrameSinkPrivateRequest | |
| 17 compositor_frame_sink_private_request, | |
| 18 cc::mojom::MojoCompositorFrameSinkClientPtr client, | |
| 19 cc::mojom::DisplayPrivateAssociatedRequest display_private_request) | |
| 20 : GpuCompositorFrameSink(delegate, | |
| 21 base::MakeUnique<cc::CompositorFrameSinkSupport>( | |
| 22 this, | |
| 23 surface_manager, | |
| 24 frame_sink_id, | |
| 25 true /* is_root */, | |
| 26 true /* handles_frame_sink_id_invalidation */, | |
| 27 true /* needs_sync_points */), | |
| 28 std::move(compositor_frame_sink_private_request), | |
| 29 std::move(client)), | |
| 30 binding_(this, std::move(request)), | |
| 31 display_private_binding_(this, std::move(display_private_request)), | |
| 32 display_begin_frame_source_(std::move(begin_frame_source)), | |
| 33 display_(std::move(display)) { | |
| 34 binding_.set_connection_error_handler( | |
| 35 base::Bind(&GpuDisplayCompositorFrameSink::OnClientConnectionLost, | |
| 36 base::Unretained(this))); | |
| 37 display_->Initialize(this, surface_manager); | |
| 38 display_->SetVisible(true); | |
| 39 } | |
| 40 | |
| 41 GpuDisplayCompositorFrameSink::~GpuDisplayCompositorFrameSink() = default; | |
| 42 | |
| 43 void GpuDisplayCompositorFrameSink::SetDisplayVisible(bool visible) { | |
| 44 DCHECK(display_); | |
| 45 display_->SetVisible(visible); | |
| 46 } | |
| 47 | |
| 48 void GpuDisplayCompositorFrameSink::ResizeDisplay(const gfx::Size& size) { | |
| 49 DCHECK(display_); | |
| 50 display_->Resize(size); | |
| 51 } | |
| 52 | |
| 53 void GpuDisplayCompositorFrameSink::SetDisplayColorSpace( | |
| 54 const gfx::ColorSpace& color_space) { | |
| 55 DCHECK(display_); | |
| 56 display_->SetColorSpace(color_space); | |
| 57 } | |
| 58 | |
| 59 void GpuDisplayCompositorFrameSink::SetOutputIsSecure(bool secure) { | |
| 60 DCHECK(display_); | |
| 61 display_->SetOutputIsSecure(secure); | |
| 62 } | |
| 63 | |
| 64 void GpuDisplayCompositorFrameSink::SetLocalSurfaceId( | |
| 65 const cc::LocalSurfaceId& local_surface_id, | |
| 66 float scale_factor) { | |
| 67 display_->SetLocalSurfaceId(local_surface_id, scale_factor); | |
| 68 } | |
| 69 | |
| 70 void GpuDisplayCompositorFrameSink::DisplayOutputSurfaceLost() { | |
| 71 // TODO(staraz): Implement this. Client should hear about context/output | |
| 72 // surface lost. | |
| 73 } | |
| 74 | |
| 75 void GpuDisplayCompositorFrameSink::DisplayWillDrawAndSwap( | |
| 76 bool will_draw_and_swap, | |
| 77 const cc::RenderPassList& render_pass) {} | |
| 78 | |
| 79 void GpuDisplayCompositorFrameSink::DisplayDidDrawAndSwap() {} | |
| 80 | |
| 81 } // namespace display_compositor | |
| OLD | NEW |