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/display.h" | 5 #include "cc/surfaces/display.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/test/null_task_runner.h" | 9 #include "base/test/null_task_runner.h" |
10 #include "cc/output/compositor_frame.h" | 10 #include "cc/output/compositor_frame.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 : DisplayScheduler(begin_frame_source, task_runner, 1), | 63 : DisplayScheduler(begin_frame_source, task_runner, 1), |
64 damaged(false), | 64 damaged(false), |
65 display_resized_(false), | 65 display_resized_(false), |
66 has_new_root_surface(false), | 66 has_new_root_surface(false), |
67 swapped(false) {} | 67 swapped(false) {} |
68 | 68 |
69 ~TestDisplayScheduler() override {} | 69 ~TestDisplayScheduler() override {} |
70 | 70 |
71 void DisplayResized() override { display_resized_ = true; } | 71 void DisplayResized() override { display_resized_ = true; } |
72 | 72 |
73 void SetNewRootSurface(SurfaceId root_surface_id) override { | 73 void SetNewRootSurface(const SurfaceId& root_surface_id) override { |
74 has_new_root_surface = true; | 74 has_new_root_surface = true; |
75 } | 75 } |
76 | 76 |
77 void SurfaceDamaged(SurfaceId surface_id) override { | 77 void SurfaceDamaged(const SurfaceId& surface_id) override { |
78 damaged = true; | 78 damaged = true; |
79 needs_draw_ = true; | 79 needs_draw_ = true; |
80 } | 80 } |
81 | 81 |
82 void DidSwapBuffers() override { swapped = true; } | 82 void DidSwapBuffers() override { swapped = true; } |
83 | 83 |
84 void ResetDamageForTest() { | 84 void ResetDamageForTest() { |
85 damaged = false; | 85 damaged = false; |
86 display_resized_ = false; | 86 display_resized_ = false; |
87 has_new_root_surface = false; | 87 has_new_root_surface = false; |
88 } | 88 } |
89 | 89 |
90 bool damaged; | 90 bool damaged; |
91 bool display_resized_; | 91 bool display_resized_; |
92 bool has_new_root_surface; | 92 bool has_new_root_surface; |
93 bool swapped; | 93 bool swapped; |
94 }; | 94 }; |
95 | 95 |
96 class DisplayTest : public testing::Test { | 96 class DisplayTest : public testing::Test { |
97 public: | 97 public: |
98 DisplayTest() | 98 DisplayTest() |
99 : factory_(&manager_, &surface_factory_client_), | 99 : factory_(&manager_, &surface_factory_client_), |
100 id_allocator_(kArbitrarySurfaceNamespace), | 100 id_allocator_(kArbitraryClientId), |
101 task_runner_(new base::NullTaskRunner) { | 101 task_runner_(new base::NullTaskRunner) { |
102 id_allocator_.RegisterSurfaceIdNamespace(&manager_); | 102 id_allocator_.RegisterSurfaceClientId(&manager_); |
103 } | 103 } |
104 | 104 |
105 void SetUpDisplay(const RendererSettings& settings, | 105 void SetUpDisplay(const RendererSettings& settings, |
106 std::unique_ptr<TestWebGraphicsContext3D> context) { | 106 std::unique_ptr<TestWebGraphicsContext3D> context) { |
107 std::unique_ptr<BeginFrameSource> begin_frame_source( | 107 std::unique_ptr<BeginFrameSource> begin_frame_source( |
108 new StubBeginFrameSource); | 108 new StubBeginFrameSource); |
109 | 109 |
110 std::unique_ptr<FakeOutputSurface> output_surface; | 110 std::unique_ptr<FakeOutputSurface> output_surface; |
111 if (context) { | 111 if (context) { |
112 output_surface = FakeOutputSurface::Create3d(std::move(context)); | 112 output_surface = FakeOutputSurface::Create3d(std::move(context)); |
113 } else { | 113 } else { |
114 std::unique_ptr<TestSoftwareOutputDevice> device( | 114 std::unique_ptr<TestSoftwareOutputDevice> device( |
115 new TestSoftwareOutputDevice); | 115 new TestSoftwareOutputDevice); |
116 software_output_device_ = device.get(); | 116 software_output_device_ = device.get(); |
117 output_surface = FakeOutputSurface::CreateSoftware(std::move(device)); | 117 output_surface = FakeOutputSurface::CreateSoftware(std::move(device)); |
118 } | 118 } |
119 output_surface_ = output_surface.get(); | 119 output_surface_ = output_surface.get(); |
120 | 120 |
121 std::unique_ptr<TestDisplayScheduler> scheduler( | 121 std::unique_ptr<TestDisplayScheduler> scheduler( |
122 new TestDisplayScheduler(begin_frame_source.get(), task_runner_.get())); | 122 new TestDisplayScheduler(begin_frame_source.get(), task_runner_.get())); |
123 scheduler_ = scheduler.get(); | 123 scheduler_ = scheduler.get(); |
124 | 124 |
125 display_ = base::MakeUnique<Display>( | 125 display_ = base::MakeUnique<Display>( |
126 &manager_, &shared_bitmap_manager_, | 126 &manager_, &shared_bitmap_manager_, |
127 nullptr /* gpu_memory_buffer_manager */, settings, | 127 nullptr /* gpu_memory_buffer_manager */, settings, |
128 id_allocator_.id_namespace(), std::move(begin_frame_source), | 128 id_allocator_.client_id(), std::move(begin_frame_source), |
129 std::move(output_surface), std::move(scheduler), | 129 std::move(output_surface), std::move(scheduler), |
130 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get())); | 130 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get())); |
131 } | 131 } |
132 | 132 |
133 protected: | 133 protected: |
134 void SubmitCompositorFrame(RenderPassList* pass_list, SurfaceId surface_id) { | 134 void SubmitCompositorFrame(RenderPassList* pass_list, |
| 135 const SurfaceId& surface_id) { |
135 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); | 136 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); |
136 pass_list->swap(frame_data->render_pass_list); | 137 pass_list->swap(frame_data->render_pass_list); |
137 | 138 |
138 CompositorFrame frame; | 139 CompositorFrame frame; |
139 frame.delegated_frame_data = std::move(frame_data); | 140 frame.delegated_frame_data = std::move(frame_data); |
140 | 141 |
141 factory_.SubmitCompositorFrame(surface_id, std::move(frame), | 142 factory_.SubmitCompositorFrame(surface_id, std::move(frame), |
142 SurfaceFactory::DrawCallback()); | 143 SurfaceFactory::DrawCallback()); |
143 } | 144 } |
144 | 145 |
145 static constexpr int kArbitrarySurfaceNamespace = 3; | 146 static constexpr int kArbitraryClientId = 3; |
146 | 147 |
147 SurfaceManager manager_; | 148 SurfaceManager manager_; |
148 FakeSurfaceFactoryClient surface_factory_client_; | 149 FakeSurfaceFactoryClient surface_factory_client_; |
149 SurfaceFactory factory_; | 150 SurfaceFactory factory_; |
150 SurfaceIdAllocator id_allocator_; | 151 SurfaceIdAllocator id_allocator_; |
151 scoped_refptr<base::NullTaskRunner> task_runner_; | 152 scoped_refptr<base::NullTaskRunner> task_runner_; |
152 TestSharedBitmapManager shared_bitmap_manager_; | 153 TestSharedBitmapManager shared_bitmap_manager_; |
153 std::unique_ptr<Display> display_; | 154 std::unique_ptr<Display> display_; |
154 TestSoftwareOutputDevice* software_output_device_ = nullptr; | 155 TestSoftwareOutputDevice* software_output_device_ = nullptr; |
155 FakeOutputSurface* output_surface_ = nullptr; | 156 FakeOutputSurface* output_surface_ = nullptr; |
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
487 | 488 |
488 EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM()); | 489 EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM()); |
489 display_->Resize(gfx::Size(250, 250)); | 490 display_->Resize(gfx::Size(250, 250)); |
490 testing::Mock::VerifyAndClearExpectations(context_ptr); | 491 testing::Mock::VerifyAndClearExpectations(context_ptr); |
491 | 492 |
492 factory_.Destroy(surface_id); | 493 factory_.Destroy(surface_id); |
493 } | 494 } |
494 | 495 |
495 } // namespace | 496 } // namespace |
496 } // namespace cc | 497 } // namespace cc |
OLD | NEW |