| 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 |