Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: services/ui/ws/frame_generator.cc

Issue 2579693004: GpuCompositorFrameSink implements cc::mojom::DisplayPrivate (Closed)
Patch Set: Addressed comments Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "services/ui/ws/frame_generator.h" 5 #include "services/ui/ws/frame_generator.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/containers/adapters.h" 9 #include "base/containers/adapters.h"
10 #include "cc/output/compositor_frame.h" 10 #include "cc/output/compositor_frame.h"
(...skipping 25 matching lines...) Expand all
36 // FrameGenerator during destruction of |compositor_frame_sink_|. 36 // FrameGenerator during destruction of |compositor_frame_sink_|.
37 weak_factory_.InvalidateWeakPtrs(); 37 weak_factory_.InvalidateWeakPtrs();
38 compositor_frame_sink_.reset(); 38 compositor_frame_sink_.reset();
39 } 39 }
40 40
41 void FrameGenerator::OnAcceleratedWidgetAvailable( 41 void FrameGenerator::OnAcceleratedWidgetAvailable(
42 gfx::AcceleratedWidget widget) { 42 gfx::AcceleratedWidget widget) {
43 DCHECK_NE(gfx::kNullAcceleratedWidget, widget); 43 DCHECK_NE(gfx::kNullAcceleratedWidget, widget);
44 cc::mojom::MojoCompositorFrameSinkRequest request = 44 cc::mojom::MojoCompositorFrameSinkRequest request =
45 mojo::GetProxy(&compositor_frame_sink_); 45 mojo::GetProxy(&compositor_frame_sink_);
46 cc::mojom::DisplayPrivateRequest display_private_request =
47 mojo::GetProxy(&display_private_);
46 root_window_->CreateDisplayCompositorFrameSink( 48 root_window_->CreateDisplayCompositorFrameSink(
47 widget, std::move(request), binding_.CreateInterfacePtrAndBind()); 49 widget, std::move(request), binding_.CreateInterfacePtrAndBind(),
50 std::move(display_private_request));
48 // TODO(fsamuel): This means we're always requesting a new BeginFrame signal 51 // TODO(fsamuel): This means we're always requesting a new BeginFrame signal
49 // even when we don't need it. Once surface ID propagation work is done, 52 // even when we don't need it. Once surface ID propagation work is done,
50 // this will not be necessary because FrameGenerator will only need a 53 // this will not be necessary because FrameGenerator will only need a
51 // BeginFrame if the window manager changes. 54 // BeginFrame if the window manager changes.
52 compositor_frame_sink_->SetNeedsBeginFrame(true); 55 compositor_frame_sink_->SetNeedsBeginFrame(true);
53 } 56 }
54 57
55 void FrameGenerator::OnSurfaceCreated(const cc::SurfaceId& surface_id, 58 void FrameGenerator::OnSurfaceCreated(const cc::SurfaceId& surface_id,
56 ServerWindow* window) { 59 ServerWindow* window) {
57 DCHECK(surface_id.is_valid()); 60 DCHECK(surface_id.is_valid());
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 cc::SurfaceId underlay_surface_id = 343 cc::SurfaceId underlay_surface_id =
341 window->compositor_frame_sink_manager()->GetLatestSurfaceId( 344 window->compositor_frame_sink_manager()->GetLatestSurfaceId(
342 mojom::CompositorFrameSinkType::UNDERLAY); 345 mojom::CompositorFrameSinkType::UNDERLAY);
343 if (underlay_surface_id.is_valid()) 346 if (underlay_surface_id.is_valid())
344 RemoveFrameSinkReference(underlay_surface_id.frame_sink_id()); 347 RemoveFrameSinkReference(underlay_surface_id.frame_sink_id());
345 } 348 }
346 349
347 } // namespace ws 350 } // namespace ws
348 351
349 } // namespace ui 352 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698