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

Side by Side Diff: services/ui/surfaces/display_compositor.cc

Issue 2684933003: Move frame_sink_id management to framesink_manager.cc/h from (Closed)
Patch Set: Created 3 years, 10 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/surfaces/display_compositor.h" 5 #include "services/ui/surfaces/display_compositor.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 18 matching lines...) Expand all
29 29
30 namespace ui { 30 namespace ui {
31 31
32 DisplayCompositor::DisplayCompositor( 32 DisplayCompositor::DisplayCompositor(
33 scoped_refptr<gpu::InProcessCommandBuffer::Service> gpu_service, 33 scoped_refptr<gpu::InProcessCommandBuffer::Service> gpu_service,
34 std::unique_ptr<gpu::GpuMemoryBufferManager> gpu_memory_buffer_manager, 34 std::unique_ptr<gpu::GpuMemoryBufferManager> gpu_memory_buffer_manager,
35 gpu::ImageFactory* image_factory, 35 gpu::ImageFactory* image_factory,
36 cc::mojom::DisplayCompositorRequest request, 36 cc::mojom::DisplayCompositorRequest request,
37 cc::mojom::DisplayCompositorClientPtr client) 37 cc::mojom::DisplayCompositorClientPtr client)
38 : manager_(cc::SurfaceManager::LifetimeType::REFERENCES), 38 : manager_(cc::SurfaceManager::LifetimeType::REFERENCES),
39 framesink_manager_(),
39 gpu_service_(std::move(gpu_service)), 40 gpu_service_(std::move(gpu_service)),
40 gpu_memory_buffer_manager_(std::move(gpu_memory_buffer_manager)), 41 gpu_memory_buffer_manager_(std::move(gpu_memory_buffer_manager)),
41 image_factory_(image_factory), 42 image_factory_(image_factory),
42 task_runner_(base::ThreadTaskRunnerHandle::Get()), 43 task_runner_(base::ThreadTaskRunnerHandle::Get()),
43 client_(std::move(client)), 44 client_(std::move(client)),
44 binding_(this, std::move(request)) { 45 binding_(this, std::move(request)) {
45 manager_.AddObserver(this); 46 manager_.AddObserver(this);
46 } 47 }
47 48
48 DisplayCompositor::~DisplayCompositor() { 49 DisplayCompositor::~DisplayCompositor() {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 DCHECK_EQ(0u, compositor_frame_sinks_.count(frame_sink_id)); 82 DCHECK_EQ(0u, compositor_frame_sinks_.count(frame_sink_id));
82 83
83 std::unique_ptr<cc::SyntheticBeginFrameSource> begin_frame_source( 84 std::unique_ptr<cc::SyntheticBeginFrameSource> begin_frame_source(
84 new cc::DelayBasedBeginFrameSource( 85 new cc::DelayBasedBeginFrameSource(
85 base::MakeUnique<cc::DelayBasedTimeSource>(task_runner_.get()))); 86 base::MakeUnique<cc::DelayBasedTimeSource>(task_runner_.get())));
86 std::unique_ptr<cc::Display> display = 87 std::unique_ptr<cc::Display> display =
87 CreateDisplay(frame_sink_id, surface_handle, begin_frame_source.get()); 88 CreateDisplay(frame_sink_id, surface_handle, begin_frame_source.get());
88 89
89 compositor_frame_sinks_[frame_sink_id] = 90 compositor_frame_sinks_[frame_sink_id] =
90 base::MakeUnique<display_compositor::GpuDisplayCompositorFrameSink>( 91 base::MakeUnique<display_compositor::GpuDisplayCompositorFrameSink>(
91 this, &manager_, frame_sink_id, std::move(display), 92 this, &manager_,&framesink_manager_, frame_sink_id,
92 std::move(begin_frame_source), std::move(request), 93 std::move(display), std::move(begin_frame_source), std::move(request),
93 std::move(private_request), std::move(client), 94 std::move(private_request), std::move(client),
94 std::move(display_private_request)); 95 std::move(display_private_request));
95 } 96 }
96 97
97 void DisplayCompositor::CreateOffscreenCompositorFrameSink( 98 void DisplayCompositor::CreateOffscreenCompositorFrameSink(
98 const cc::FrameSinkId& frame_sink_id, 99 const cc::FrameSinkId& frame_sink_id,
99 cc::mojom::MojoCompositorFrameSinkRequest request, 100 cc::mojom::MojoCompositorFrameSinkRequest request,
100 cc::mojom::MojoCompositorFrameSinkPrivateRequest private_request, 101 cc::mojom::MojoCompositorFrameSinkPrivateRequest private_request,
101 cc::mojom::MojoCompositorFrameSinkClientPtr client) { 102 cc::mojom::MojoCompositorFrameSinkClientPtr client) {
102 DCHECK(thread_checker_.CalledOnValidThread()); 103 DCHECK(thread_checker_.CalledOnValidThread());
103 DCHECK_EQ(0u, compositor_frame_sinks_.count(frame_sink_id)); 104 DCHECK_EQ(0u, compositor_frame_sinks_.count(frame_sink_id));
104 105
105 compositor_frame_sinks_[frame_sink_id] = 106 compositor_frame_sinks_[frame_sink_id] =
106 base::MakeUnique<display_compositor::GpuOffscreenCompositorFrameSink>( 107 base::MakeUnique<display_compositor::GpuOffscreenCompositorFrameSink>(
107 this, &manager_, frame_sink_id, std::move(request), 108 this, &manager_,&framesink_manager_, frame_sink_id,
108 std::move(private_request), std::move(client)); 109 std::move(request), std::move(private_request), std::move(client));
109 } 110 }
110 111
111 std::unique_ptr<cc::Display> DisplayCompositor::CreateDisplay( 112 std::unique_ptr<cc::Display> DisplayCompositor::CreateDisplay(
112 const cc::FrameSinkId& frame_sink_id, 113 const cc::FrameSinkId& frame_sink_id,
113 gpu::SurfaceHandle surface_handle, 114 gpu::SurfaceHandle surface_handle,
114 cc::SyntheticBeginFrameSource* begin_frame_source) { 115 cc::SyntheticBeginFrameSource* begin_frame_source) {
115 scoped_refptr<cc::InProcessContextProvider> context_provider = 116 scoped_refptr<cc::InProcessContextProvider> context_provider =
116 new cc::InProcessContextProvider( 117 new cc::InProcessContextProvider(
117 gpu_service_, surface_handle, gpu_memory_buffer_manager_.get(), 118 gpu_service_, surface_handle, gpu_memory_buffer_manager_.get(),
118 image_factory_, gpu::SharedMemoryLimits(), 119 image_factory_, gpu::SharedMemoryLimits(),
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 DCHECK_GT(surface_info.device_scale_factor(), 0.0f); 161 DCHECK_GT(surface_info.device_scale_factor(), 0.0f);
161 162
162 if (client_) 163 if (client_)
163 client_->OnSurfaceCreated(surface_info); 164 client_->OnSurfaceCreated(surface_info);
164 } 165 }
165 166
166 void DisplayCompositor::OnSurfaceDamaged(const cc::SurfaceId& surface_id, 167 void DisplayCompositor::OnSurfaceDamaged(const cc::SurfaceId& surface_id,
167 bool* changed) {} 168 bool* changed) {}
168 169
169 } // namespace ui 170 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698