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 "base/test/null_task_runner.h" | 5 #include "base/test/null_task_runner.h" |
6 #include "cc/output/compositor_frame.h" | 6 #include "cc/output/compositor_frame.h" |
7 #include "cc/output/copy_output_result.h" | 7 #include "cc/output/copy_output_result.h" |
8 #include "cc/output/delegated_frame_data.h" | 8 #include "cc/output/delegated_frame_data.h" |
9 #include "cc/quads/render_pass.h" | 9 #include "cc/quads/render_pass.h" |
10 #include "cc/resources/shared_bitmap_manager.h" | 10 #include "cc/resources/shared_bitmap_manager.h" |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 SurfaceFactory::DrawCallback()); | 59 SurfaceFactory::DrawCallback()); |
60 } | 60 } |
61 | 61 |
62 SurfaceManager manager_; | 62 SurfaceManager manager_; |
63 EmptySurfaceFactoryClient empty_client_; | 63 EmptySurfaceFactoryClient empty_client_; |
64 SurfaceFactory factory_; | 64 SurfaceFactory factory_; |
65 scoped_ptr<FakeOutputSurface> output_surface_; | 65 scoped_ptr<FakeOutputSurface> output_surface_; |
66 FakeOutputSurface* output_surface_ptr_; | 66 FakeOutputSurface* output_surface_ptr_; |
67 FakeBeginFrameSource fake_begin_frame_source_; | 67 FakeBeginFrameSource fake_begin_frame_source_; |
68 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; | 68 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; |
| 69 scoped_refptr<base::NullTaskRunner> task_runner_; |
69 }; | 70 }; |
70 | 71 |
71 class TestDisplayClient : public DisplayClient { | 72 class TestDisplayClient : public DisplayClient { |
72 public: | 73 public: |
73 TestDisplayClient() {} | 74 TestDisplayClient() {} |
74 ~TestDisplayClient() override {} | 75 ~TestDisplayClient() override {} |
75 | 76 |
76 void CommitVSyncParameters(base::TimeTicks timebase, | 77 void CommitVSyncParameters(base::TimeTicks timebase, |
77 base::TimeDelta interval) override {} | 78 base::TimeDelta interval) override {} |
78 void OutputSurfaceLost() override {} | 79 void OutputSurfaceLost() override {} |
79 void SetMemoryPolicy(const ManagedMemoryPolicy& policy) override {} | 80 void SetMemoryPolicy(const ManagedMemoryPolicy& policy) override {} |
80 }; | 81 }; |
81 | 82 |
82 class TestDisplayScheduler : public DisplayScheduler { | 83 class TestDisplayScheduler : public DisplayScheduler { |
83 public: | 84 public: |
84 TestDisplayScheduler(DisplaySchedulerClient* client, | 85 TestDisplayScheduler(DisplaySchedulerClient* client, |
85 BeginFrameSource* begin_frame_source) | 86 BeginFrameSource* begin_frame_source, |
86 : DisplayScheduler(client, | 87 base::NullTaskRunner* task_runner) |
87 begin_frame_source, | 88 : DisplayScheduler(client, begin_frame_source, task_runner, 1), |
88 make_scoped_refptr(new base::NullTaskRunner), | |
89 1), | |
90 damaged(false), | 89 damaged(false), |
91 entire_display_damaged(false), | 90 entire_display_damaged(false), |
92 swapped(false) {} | 91 swapped(false) {} |
93 | 92 |
94 ~TestDisplayScheduler() override {} | 93 ~TestDisplayScheduler() override {} |
95 | 94 |
96 void EntireDisplayDamaged(SurfaceId root_surface_id) override { | 95 void EntireDisplayDamaged(SurfaceId root_surface_id) override { |
97 entire_display_damaged = true; | 96 entire_display_damaged = true; |
98 } | 97 } |
99 | 98 |
(...skipping 21 matching lines...) Expand all Loading... |
121 // Check that frame is damaged and swapped only under correct conditions. | 120 // Check that frame is damaged and swapped only under correct conditions. |
122 TEST_F(DisplayTest, DisplayDamaged) { | 121 TEST_F(DisplayTest, DisplayDamaged) { |
123 SetUpContext(nullptr); | 122 SetUpContext(nullptr); |
124 TestDisplayClient client; | 123 TestDisplayClient client; |
125 RendererSettings settings; | 124 RendererSettings settings; |
126 settings.partial_swap_enabled = true; | 125 settings.partial_swap_enabled = true; |
127 settings.finish_rendering_on_resize = true; | 126 settings.finish_rendering_on_resize = true; |
128 Display display(&client, &manager_, shared_bitmap_manager_.get(), nullptr, | 127 Display display(&client, &manager_, shared_bitmap_manager_.get(), nullptr, |
129 settings); | 128 settings); |
130 | 129 |
131 TestDisplayScheduler scheduler(&display, &fake_begin_frame_source_); | 130 TestDisplayScheduler scheduler(&display, &fake_begin_frame_source_, |
| 131 task_runner_.get()); |
132 display.Initialize(output_surface_.Pass(), &scheduler); | 132 display.Initialize(output_surface_.Pass(), &scheduler); |
133 | 133 |
134 SurfaceId surface_id(7u); | 134 SurfaceId surface_id(7u); |
135 EXPECT_FALSE(scheduler.damaged); | 135 EXPECT_FALSE(scheduler.damaged); |
136 EXPECT_FALSE(scheduler.entire_display_damaged); | 136 EXPECT_FALSE(scheduler.entire_display_damaged); |
137 display.SetSurfaceId(surface_id, 1.f); | 137 display.SetSurfaceId(surface_id, 1.f); |
138 EXPECT_FALSE(scheduler.damaged); | 138 EXPECT_FALSE(scheduler.damaged); |
139 EXPECT_TRUE(scheduler.entire_display_damaged); | 139 EXPECT_TRUE(scheduler.entire_display_damaged); |
140 | 140 |
141 scheduler.ResetDamageForTest(); | 141 scheduler.ResetDamageForTest(); |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 SetUpContext(context.Pass()); | 328 SetUpContext(context.Pass()); |
329 | 329 |
330 EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM()).Times(0); | 330 EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM()).Times(0); |
331 TestDisplayClient client; | 331 TestDisplayClient client; |
332 RendererSettings settings; | 332 RendererSettings settings; |
333 settings.partial_swap_enabled = true; | 333 settings.partial_swap_enabled = true; |
334 settings.finish_rendering_on_resize = true; | 334 settings.finish_rendering_on_resize = true; |
335 Display display(&client, &manager_, shared_bitmap_manager_.get(), nullptr, | 335 Display display(&client, &manager_, shared_bitmap_manager_.get(), nullptr, |
336 settings); | 336 settings); |
337 | 337 |
338 TestDisplayScheduler scheduler(&display, &fake_begin_frame_source_); | 338 TestDisplayScheduler scheduler(&display, &fake_begin_frame_source_, |
| 339 task_runner_.get()); |
339 display.Initialize(output_surface_.Pass(), &scheduler); | 340 display.Initialize(output_surface_.Pass(), &scheduler); |
340 | 341 |
341 SurfaceId surface_id(7u); | 342 SurfaceId surface_id(7u); |
342 display.SetSurfaceId(surface_id, 1.f); | 343 display.SetSurfaceId(surface_id, 1.f); |
343 | 344 |
344 display.Resize(gfx::Size(100, 100)); | 345 display.Resize(gfx::Size(100, 100)); |
345 factory_.Create(surface_id); | 346 factory_.Create(surface_id); |
346 | 347 |
347 { | 348 { |
348 RenderPassList pass_list; | 349 RenderPassList pass_list; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 | 388 |
388 EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM()); | 389 EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM()); |
389 display.Resize(gfx::Size(250, 250)); | 390 display.Resize(gfx::Size(250, 250)); |
390 testing::Mock::VerifyAndClearExpectations(context_ptr); | 391 testing::Mock::VerifyAndClearExpectations(context_ptr); |
391 | 392 |
392 factory_.Destroy(surface_id); | 393 factory_.Destroy(surface_id); |
393 } | 394 } |
394 | 395 |
395 } // namespace | 396 } // namespace |
396 } // namespace cc | 397 } // namespace cc |
OLD | NEW |