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

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

Issue 2579693004: GpuCompositorFrameSink implements cc::mojom::DisplayPrivate (Closed)
Patch Set: Address comments Created 3 years, 12 months 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 24 matching lines...) Expand all
35 // Invalidate WeakPtrs now to avoid callbacks back into the 35 // Invalidate WeakPtrs now to avoid callbacks back into the
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(&compositor_frame_sink_); 44 cc::mojom::MojoCompositorFrameSinkRequest request(&compositor_frame_sink_);
45 cc::mojom::DisplayPrivateRequest display_private_request(&display_private_);
45 root_window_->CreateDisplayCompositorFrameSink( 46 root_window_->CreateDisplayCompositorFrameSink(
46 widget, std::move(request), binding_.CreateInterfacePtrAndBind()); 47 widget, std::move(request), binding_.CreateInterfacePtrAndBind(),
48 std::move(display_private_request));
47 // TODO(fsamuel): This means we're always requesting a new BeginFrame signal 49 // TODO(fsamuel): This means we're always requesting a new BeginFrame signal
48 // even when we don't need it. Once surface ID propagation work is done, 50 // even when we don't need it. Once surface ID propagation work is done,
49 // this will not be necessary because FrameGenerator will only need a 51 // this will not be necessary because FrameGenerator will only need a
50 // BeginFrame if the window manager changes. 52 // BeginFrame if the window manager changes.
51 compositor_frame_sink_->SetNeedsBeginFrame(true); 53 compositor_frame_sink_->SetNeedsBeginFrame(true);
52 } 54 }
53 55
54 void FrameGenerator::OnSurfaceCreated(const cc::SurfaceId& surface_id, 56 void FrameGenerator::OnSurfaceCreated(const cc::SurfaceId& surface_id,
55 ServerWindow* window) { 57 ServerWindow* window) {
56 DCHECK(surface_id.is_valid()); 58 DCHECK(surface_id.is_valid());
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 cc::SurfaceId underlay_surface_id = 342 cc::SurfaceId underlay_surface_id =
341 window->compositor_frame_sink_manager()->GetLatestSurfaceId( 343 window->compositor_frame_sink_manager()->GetLatestSurfaceId(
342 mojom::CompositorFrameSinkType::UNDERLAY); 344 mojom::CompositorFrameSinkType::UNDERLAY);
343 if (underlay_surface_id.is_valid()) 345 if (underlay_surface_id.is_valid())
344 RemoveFrameSinkReference(underlay_surface_id.frame_sink_id()); 346 RemoveFrameSinkReference(underlay_surface_id.frame_sink_id());
345 } 347 }
346 348
347 } // namespace ws 349 } // namespace ws
348 350
349 } // namespace ui 351 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698