OLD | NEW |
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 "cc/surfaces/direct_compositor_frame_sink.h" | 5 #include "cc/surfaces/direct_compositor_frame_sink.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "cc/output/renderer_settings.h" | 9 #include "cc/output/renderer_settings.h" |
10 #include "cc/output/texture_mailbox_deleter.h" | 10 #include "cc/output/texture_mailbox_deleter.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 namespace cc { | 26 namespace cc { |
27 namespace { | 27 namespace { |
28 | 28 |
29 static constexpr FrameSinkId kArbitraryFrameSinkId(1, 1); | 29 static constexpr FrameSinkId kArbitraryFrameSinkId(1, 1); |
30 | 30 |
31 class DirectCompositorFrameSinkTest : public testing::Test { | 31 class DirectCompositorFrameSinkTest : public testing::Test { |
32 public: | 32 public: |
33 DirectCompositorFrameSinkTest() | 33 DirectCompositorFrameSinkTest() |
34 : now_src_(new base::SimpleTestTickClock()), | 34 : now_src_(new base::SimpleTestTickClock()), |
35 task_runner_(new OrderedSimpleTaskRunner(now_src_.get(), true)), | 35 task_runner_(new OrderedSimpleTaskRunner(now_src_.get(), true)), |
36 allocator_(kArbitraryFrameSinkId), | |
37 display_size_(1920, 1080), | 36 display_size_(1920, 1080), |
38 display_rect_(display_size_), | 37 display_rect_(display_size_), |
39 context_provider_(TestContextProvider::Create()) { | 38 context_provider_(TestContextProvider::Create()) { |
40 surface_manager_.RegisterFrameSinkId(allocator_.frame_sink_id()); | 39 surface_manager_.RegisterFrameSinkId(kArbitraryFrameSinkId); |
41 | 40 |
42 std::unique_ptr<FakeOutputSurface> display_output_surface = | 41 std::unique_ptr<FakeOutputSurface> display_output_surface = |
43 FakeOutputSurface::Create3d(); | 42 FakeOutputSurface::Create3d(); |
44 display_output_surface_ = display_output_surface.get(); | 43 display_output_surface_ = display_output_surface.get(); |
45 | 44 |
46 std::unique_ptr<BeginFrameSource> begin_frame_source( | 45 std::unique_ptr<BeginFrameSource> begin_frame_source( |
47 new BackToBackBeginFrameSource( | 46 new BackToBackBeginFrameSource( |
48 base::MakeUnique<DelayBasedTimeSource>(task_runner_.get()))); | 47 base::MakeUnique<DelayBasedTimeSource>(task_runner_.get()))); |
49 | 48 |
50 int max_frames_pending = 2; | 49 int max_frames_pending = 2; |
51 std::unique_ptr<DisplayScheduler> scheduler(new DisplayScheduler( | 50 std::unique_ptr<DisplayScheduler> scheduler(new DisplayScheduler( |
52 begin_frame_source.get(), task_runner_.get(), max_frames_pending)); | 51 begin_frame_source.get(), task_runner_.get(), max_frames_pending)); |
53 | 52 |
54 display_.reset(new Display( | 53 display_.reset(new Display( |
55 &bitmap_manager_, &gpu_memory_buffer_manager_, RendererSettings(), | 54 &bitmap_manager_, &gpu_memory_buffer_manager_, RendererSettings(), |
56 std::move(begin_frame_source), std::move(display_output_surface), | 55 std::move(begin_frame_source), std::move(display_output_surface), |
57 std::move(scheduler), | 56 std::move(scheduler), |
58 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get()))); | 57 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get()))); |
59 compositor_frame_sink_.reset(new DirectCompositorFrameSink( | 58 compositor_frame_sink_.reset(new DirectCompositorFrameSink( |
60 &surface_manager_, &allocator_, display_.get(), context_provider_, | 59 kArbitraryFrameSinkId, &surface_manager_, display_.get(), |
61 nullptr)); | 60 context_provider_, nullptr)); |
62 | 61 |
63 compositor_frame_sink_->BindToClient(&compositor_frame_sink_client_); | 62 compositor_frame_sink_->BindToClient(&compositor_frame_sink_client_); |
64 display_->Resize(display_size_); | 63 display_->Resize(display_size_); |
65 display_->SetVisible(true); | 64 display_->SetVisible(true); |
66 | 65 |
67 EXPECT_FALSE( | 66 EXPECT_FALSE( |
68 compositor_frame_sink_client_.did_lose_compositor_frame_sink_called()); | 67 compositor_frame_sink_client_.did_lose_compositor_frame_sink_called()); |
69 } | 68 } |
70 | 69 |
71 ~DirectCompositorFrameSinkTest() override {} | 70 ~DirectCompositorFrameSinkTest() override {} |
(...skipping 17 matching lines...) Expand all Loading... |
89 SwapBuffersWithDamage(display_rect_); | 88 SwapBuffersWithDamage(display_rect_); |
90 | 89 |
91 EXPECT_EQ(0u, display_output_surface_->num_sent_frames()); | 90 EXPECT_EQ(0u, display_output_surface_->num_sent_frames()); |
92 task_runner_->RunUntilIdle(); | 91 task_runner_->RunUntilIdle(); |
93 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); | 92 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); |
94 } | 93 } |
95 | 94 |
96 protected: | 95 protected: |
97 std::unique_ptr<base::SimpleTestTickClock> now_src_; | 96 std::unique_ptr<base::SimpleTestTickClock> now_src_; |
98 scoped_refptr<OrderedSimpleTaskRunner> task_runner_; | 97 scoped_refptr<OrderedSimpleTaskRunner> task_runner_; |
99 SurfaceIdAllocator allocator_; | |
100 | 98 |
101 const gfx::Size display_size_; | 99 const gfx::Size display_size_; |
102 const gfx::Rect display_rect_; | 100 const gfx::Rect display_rect_; |
103 SurfaceManager surface_manager_; | 101 SurfaceManager surface_manager_; |
104 TestSharedBitmapManager bitmap_manager_; | 102 TestSharedBitmapManager bitmap_manager_; |
105 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; | 103 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; |
106 | 104 |
107 scoped_refptr<TestContextProvider> context_provider_; | 105 scoped_refptr<TestContextProvider> context_provider_; |
108 FakeOutputSurface* display_output_surface_ = nullptr; | 106 FakeOutputSurface* display_output_surface_ = nullptr; |
109 std::unique_ptr<Display> display_; | 107 std::unique_ptr<Display> display_; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); | 146 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); |
149 | 147 |
150 SwapBuffersWithDamage(gfx::Rect()); | 148 SwapBuffersWithDamage(gfx::Rect()); |
151 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); | 149 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); |
152 task_runner_->RunUntilIdle(); | 150 task_runner_->RunUntilIdle(); |
153 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); | 151 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); |
154 } | 152 } |
155 | 153 |
156 } // namespace | 154 } // namespace |
157 } // namespace cc | 155 } // namespace cc |
OLD | NEW |