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

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

Issue 2435193003: Mus: surfaces::CompositorFrameSink => DisplayCompositorFrameSink (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « services/ui/ws/frame_generator.h ('k') | services/ui/ws/platform_display.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "base/containers/adapters.h" 7 #include "base/containers/adapters.h"
8 #include "cc/output/compositor_frame.h" 8 #include "cc/output/compositor_frame.h"
9 #include "cc/quads/render_pass.h" 9 #include "cc/quads/render_pass.h"
10 #include "cc/quads/render_pass_draw_quad.h" 10 #include "cc/quads/render_pass_draw_quad.h"
11 #include "cc/quads/shared_quad_state.h" 11 #include "cc/quads/shared_quad_state.h"
12 #include "cc/quads/surface_draw_quad.h" 12 #include "cc/quads/surface_draw_quad.h"
13 #include "cc/surfaces/surface_id.h" 13 #include "cc/surfaces/surface_id.h"
14 #include "gpu/ipc/client/gpu_channel_host.h" 14 #include "gpu/ipc/client/gpu_channel_host.h"
15 #include "services/ui/surfaces/compositor_frame_sink.h" 15 #include "services/ui/surfaces/display_compositor_frame_sink.h"
16 #include "services/ui/ws/frame_generator_delegate.h" 16 #include "services/ui/ws/frame_generator_delegate.h"
17 #include "services/ui/ws/server_window.h" 17 #include "services/ui/ws/server_window.h"
18 #include "services/ui/ws/server_window_surface.h" 18 #include "services/ui/ws/server_window_surface.h"
19 #include "services/ui/ws/server_window_surface_manager.h" 19 #include "services/ui/ws/server_window_surface_manager.h"
20 20
21 namespace ui { 21 namespace ui {
22 22
23 namespace ws { 23 namespace ws {
24 24
25 FrameGenerator::FrameGenerator( 25 FrameGenerator::FrameGenerator(
(...skipping 12 matching lines...) Expand all
38 ReleaseAllSurfaceReferences(); 38 ReleaseAllSurfaceReferences();
39 // Invalidate WeakPtrs now to avoid callbacks back into the 39 // Invalidate WeakPtrs now to avoid callbacks back into the
40 // FrameGenerator during destruction of |compositor_frame_sink_|. 40 // FrameGenerator during destruction of |compositor_frame_sink_|.
41 weak_factory_.InvalidateWeakPtrs(); 41 weak_factory_.InvalidateWeakPtrs();
42 compositor_frame_sink_.reset(); 42 compositor_frame_sink_.reset();
43 } 43 }
44 44
45 void FrameGenerator::OnGpuChannelEstablished( 45 void FrameGenerator::OnGpuChannelEstablished(
46 scoped_refptr<gpu::GpuChannelHost> channel) { 46 scoped_refptr<gpu::GpuChannelHost> channel) {
47 if (widget_ != gfx::kNullAcceleratedWidget) { 47 if (widget_ != gfx::kNullAcceleratedWidget) {
48 compositor_frame_sink_ = base::MakeUnique<surfaces::CompositorFrameSink>( 48 compositor_frame_sink_ = base::MakeUnique<DisplayCompositorFrameSink>(
49 frame_sink_id_, base::ThreadTaskRunnerHandle::Get(), widget_, 49 frame_sink_id_, base::ThreadTaskRunnerHandle::Get(), widget_,
50 std::move(channel), display_compositor_); 50 std::move(channel), display_compositor_);
51 } else { 51 } else {
52 gpu_channel_ = std::move(channel); 52 gpu_channel_ = std::move(channel);
53 } 53 }
54 } 54 }
55 55
56 void FrameGenerator::RequestRedraw(const gfx::Rect& redraw_region) { 56 void FrameGenerator::RequestRedraw(const gfx::Rect& redraw_region) {
57 dirty_rect_.Union(redraw_region); 57 dirty_rect_.Union(redraw_region);
58 WantToDraw(); 58 WantToDraw();
59 } 59 }
60 60
61 void FrameGenerator::OnAcceleratedWidgetAvailable( 61 void FrameGenerator::OnAcceleratedWidgetAvailable(
62 gfx::AcceleratedWidget widget) { 62 gfx::AcceleratedWidget widget) {
63 widget_ = widget; 63 widget_ = widget;
64 if (gpu_channel_ && widget != gfx::kNullAcceleratedWidget) { 64 if (gpu_channel_ && widget != gfx::kNullAcceleratedWidget) {
65 compositor_frame_sink_.reset(new surfaces::CompositorFrameSink( 65 compositor_frame_sink_ = base::MakeUnique<DisplayCompositorFrameSink>(
66 frame_sink_id_, base::ThreadTaskRunnerHandle::Get(), widget_, 66 frame_sink_id_, base::ThreadTaskRunnerHandle::Get(), widget_,
67 std::move(gpu_channel_), display_compositor_)); 67 std::move(gpu_channel_), display_compositor_);
68 } 68 }
69 } 69 }
70 70
71 void FrameGenerator::WantToDraw() { 71 void FrameGenerator::WantToDraw() {
72 if (draw_timer_.IsRunning() || frame_pending_) 72 if (draw_timer_.IsRunning() || frame_pending_)
73 return; 73 return;
74 74
75 // TODO(rjkroege): Use vblank to kick off Draw. 75 // TODO(rjkroege): Use vblank to kick off Draw.
76 draw_timer_.Start( 76 draw_timer_.Start(
77 FROM_HERE, base::TimeDelta(), 77 FROM_HERE, base::TimeDelta(),
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 if (default_surface) 307 if (default_surface)
308 ReleaseFrameSinkReference(default_surface->frame_sink_id()); 308 ReleaseFrameSinkReference(default_surface->frame_sink_id());
309 ServerWindowSurface* underlay_surface = surface_manager->GetUnderlaySurface(); 309 ServerWindowSurface* underlay_surface = surface_manager->GetUnderlaySurface();
310 if (underlay_surface) 310 if (underlay_surface)
311 ReleaseFrameSinkReference(underlay_surface->frame_sink_id()); 311 ReleaseFrameSinkReference(underlay_surface->frame_sink_id());
312 } 312 }
313 313
314 } // namespace ws 314 } // namespace ws
315 315
316 } // namespace ui 316 } // namespace ui
OLDNEW
« no previous file with comments | « services/ui/ws/frame_generator.h ('k') | services/ui/ws/platform_display.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698