OLD | NEW |
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 "cc/test/test_compositor_frame_sink.h" | 5 #include "cc/test/test_compositor_frame_sink.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "cc/output/begin_frame_args.h" | 10 #include "cc/output/begin_frame_args.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 | 61 |
62 bool TestCompositorFrameSink::BindToClient(CompositorFrameSinkClient* client) { | 62 bool TestCompositorFrameSink::BindToClient(CompositorFrameSinkClient* client) { |
63 if (!CompositorFrameSink::BindToClient(client)) | 63 if (!CompositorFrameSink::BindToClient(client)) |
64 return false; | 64 return false; |
65 | 65 |
66 std::unique_ptr<OutputSurface> display_output_surface = | 66 std::unique_ptr<OutputSurface> display_output_surface = |
67 test_client_->CreateDisplayOutputSurface(context_provider()); | 67 test_client_->CreateDisplayOutputSurface(context_provider()); |
68 bool display_context_shared_with_compositor = | 68 bool display_context_shared_with_compositor = |
69 display_output_surface->context_provider() == context_provider(); | 69 display_output_surface->context_provider() == context_provider(); |
70 | 70 |
71 std::unique_ptr<SyntheticBeginFrameSource> begin_frame_source; | |
72 std::unique_ptr<DisplayScheduler> scheduler; | 71 std::unique_ptr<DisplayScheduler> scheduler; |
73 if (!synchronous_composite_) { | 72 if (!synchronous_composite_) { |
74 if (renderer_settings_.disable_display_vsync) { | 73 if (renderer_settings_.disable_display_vsync) { |
75 begin_frame_source.reset(new BackToBackBeginFrameSource( | 74 begin_frame_source_.reset(new BackToBackBeginFrameSource( |
76 base::MakeUnique<DelayBasedTimeSource>(task_runner_.get()))); | 75 base::MakeUnique<DelayBasedTimeSource>(task_runner_.get()))); |
77 } else { | 76 } else { |
78 begin_frame_source.reset(new DelayBasedBeginFrameSource( | 77 begin_frame_source_.reset(new DelayBasedBeginFrameSource( |
79 base::MakeUnique<DelayBasedTimeSource>(task_runner_.get()))); | 78 base::MakeUnique<DelayBasedTimeSource>(task_runner_.get()))); |
80 begin_frame_source->SetAuthoritativeVSyncInterval( | 79 begin_frame_source_->SetAuthoritativeVSyncInterval( |
81 base::TimeDelta::FromMilliseconds(1000.f / | 80 base::TimeDelta::FromMilliseconds(1000.f / |
82 renderer_settings_.refresh_rate)); | 81 renderer_settings_.refresh_rate)); |
83 } | 82 } |
84 scheduler.reset(new DisplayScheduler( | 83 scheduler.reset(new DisplayScheduler( |
85 begin_frame_source.get(), task_runner_.get(), | 84 task_runner_.get(), |
86 display_output_surface->capabilities().max_frames_pending)); | 85 display_output_surface->capabilities().max_frames_pending)); |
87 } | 86 } |
88 | 87 |
89 display_.reset(new Display( | 88 display_.reset( |
90 shared_bitmap_manager(), gpu_memory_buffer_manager(), renderer_settings_, | 89 new Display(shared_bitmap_manager(), gpu_memory_buffer_manager(), |
91 frame_sink_id_, std::move(begin_frame_source), | 90 renderer_settings_, frame_sink_id_, begin_frame_source_.get(), |
92 std::move(display_output_surface), std::move(scheduler), | 91 std::move(display_output_surface), std::move(scheduler), |
93 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get()))); | 92 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get()))); |
94 | 93 |
95 // We want the Display's OutputSurface to hear about lost context, and when | 94 // We want the Display's OutputSurface to hear about lost context, and when |
96 // this shares a context with it we should not be listening for lost context | 95 // this shares a context with it we should not be listening for lost context |
97 // callbacks on the context here. | 96 // callbacks on the context here. |
98 if (display_context_shared_with_compositor && context_provider()) | 97 if (display_context_shared_with_compositor && context_provider()) |
99 context_provider()->SetLostContextCallback(base::Closure()); | 98 context_provider()->SetLostContextCallback(base::Closure()); |
100 | 99 |
101 surface_manager_->RegisterFrameSinkId(frame_sink_id_); | 100 surface_manager_->RegisterFrameSinkId(frame_sink_id_); |
102 surface_manager_->RegisterSurfaceFactoryClient(frame_sink_id_, this); | 101 surface_manager_->RegisterSurfaceFactoryClient(frame_sink_id_, this); |
103 display_->Initialize(this, surface_manager_.get()); | 102 display_->Initialize(this, surface_manager_.get()); |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 bool will_draw_and_swap, | 196 bool will_draw_and_swap, |
198 const RenderPassList& render_passes) { | 197 const RenderPassList& render_passes) { |
199 test_client_->DisplayWillDrawAndSwap(will_draw_and_swap, render_passes); | 198 test_client_->DisplayWillDrawAndSwap(will_draw_and_swap, render_passes); |
200 } | 199 } |
201 | 200 |
202 void TestCompositorFrameSink::DisplayDidDrawAndSwap() { | 201 void TestCompositorFrameSink::DisplayDidDrawAndSwap() { |
203 test_client_->DisplayDidDrawAndSwap(); | 202 test_client_->DisplayDidDrawAndSwap(); |
204 } | 203 } |
205 | 204 |
206 } // namespace cc | 205 } // namespace cc |
OLD | NEW |