Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(516)

Side by Side Diff: cc/surfaces/surface_display_output_surface_unittest.cc

Issue 2029323004: Get rid of virtual Display::CreateScheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@onscreendisplayclient
Patch Set: displaytest: unusedvar Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/surfaces/display_unittest.cc ('k') | cc/test/pixel_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/surface_display_output_surface.h" 5 #include "cc/surfaces/surface_display_output_surface.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/scheduler/begin_frame_source.h" 11 #include "cc/scheduler/begin_frame_source.h"
11 #include "cc/scheduler/delay_based_time_source.h" 12 #include "cc/scheduler/delay_based_time_source.h"
12 #include "cc/surfaces/display.h" 13 #include "cc/surfaces/display.h"
14 #include "cc/surfaces/display_scheduler.h"
13 #include "cc/surfaces/surface_id_allocator.h" 15 #include "cc/surfaces/surface_id_allocator.h"
14 #include "cc/surfaces/surface_manager.h" 16 #include "cc/surfaces/surface_manager.h"
15 #include "cc/test/fake_output_surface.h" 17 #include "cc/test/fake_output_surface.h"
16 #include "cc/test/fake_output_surface_client.h" 18 #include "cc/test/fake_output_surface_client.h"
17 #include "cc/test/ordered_simple_task_runner.h" 19 #include "cc/test/ordered_simple_task_runner.h"
18 #include "cc/test/test_context_provider.h" 20 #include "cc/test/test_context_provider.h"
19 #include "cc/test/test_gpu_memory_buffer_manager.h" 21 #include "cc/test/test_gpu_memory_buffer_manager.h"
20 #include "cc/test/test_shared_bitmap_manager.h" 22 #include "cc/test/test_shared_bitmap_manager.h"
21 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
22 24
23 namespace cc { 25 namespace cc {
24 namespace { 26 namespace {
25 27
26 class SurfaceDisplayOutputSurfaceTest : public testing::Test { 28 class SurfaceDisplayOutputSurfaceTest : public testing::Test {
27 public: 29 public:
28 SurfaceDisplayOutputSurfaceTest() 30 SurfaceDisplayOutputSurfaceTest()
29 : now_src_(new base::SimpleTestTickClock()), 31 : now_src_(new base::SimpleTestTickClock()),
30 task_runner_(new OrderedSimpleTaskRunner(now_src_.get(), true)), 32 task_runner_(new OrderedSimpleTaskRunner(now_src_.get(), true)),
31 begin_frame_source_(new BackToBackBeginFrameSource(
32 base::MakeUnique<DelayBasedTimeSource>(task_runner_.get()))),
33 allocator_(0), 33 allocator_(0),
34 display_size_(1920, 1080), 34 display_size_(1920, 1080),
35 display_rect_(display_size_), 35 display_rect_(display_size_),
36 context_provider_(TestContextProvider::Create()) { 36 context_provider_(TestContextProvider::Create()) {
37 surface_manager_.RegisterSurfaceIdNamespace(allocator_.id_namespace()); 37 surface_manager_.RegisterSurfaceIdNamespace(allocator_.id_namespace());
38 38
39 std::unique_ptr<FakeOutputSurface> display_output_surface = 39 std::unique_ptr<FakeOutputSurface> display_output_surface =
40 FakeOutputSurface::Create3d(); 40 FakeOutputSurface::Create3d();
41 display_output_surface_ = display_output_surface.get(); 41 display_output_surface_ = display_output_surface.get();
42 display_output_surface_->set_max_frames_pending(2);
43 42
44 display_.reset(new Display(&surface_manager_, &bitmap_manager_, 43 std::unique_ptr<BeginFrameSource> begin_frame_source(
45 &gpu_memory_buffer_manager_, renderer_settings_, 44 new BackToBackBeginFrameSource(
46 allocator_.id_namespace(), task_runner_.get(), 45 base::MakeUnique<DelayBasedTimeSource>(task_runner_.get())));
47 std::move(display_output_surface))); 46
47 int max_frames_pending = 2;
48 std::unique_ptr<DisplayScheduler> scheduler(new DisplayScheduler(
49 begin_frame_source.get(), task_runner_.get(), max_frames_pending));
50
51 display_.reset(new Display(
52 &surface_manager_, &bitmap_manager_, &gpu_memory_buffer_manager_,
53 RendererSettings(), allocator_.id_namespace(),
54 std::move(begin_frame_source), std::move(display_output_surface),
55 std::move(scheduler),
56 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get())));
48 delegated_output_surface_.reset(new SurfaceDisplayOutputSurface( 57 delegated_output_surface_.reset(new SurfaceDisplayOutputSurface(
49 &surface_manager_, &allocator_, display_.get(), context_provider_, 58 &surface_manager_, &allocator_, display_.get(), context_provider_,
50 nullptr)); 59 nullptr));
51 60
52 // Set the Display's begin frame source like a real browser compositor
53 // output surface would.
54 display_->SetBeginFrameSource(begin_frame_source_.get());
55 delegated_output_surface_->BindToClient(&delegated_output_surface_client_); 61 delegated_output_surface_->BindToClient(&delegated_output_surface_client_);
56 display_->Resize(display_size_); 62 display_->Resize(display_size_);
57 63
58 EXPECT_FALSE( 64 EXPECT_FALSE(
59 delegated_output_surface_client_.did_lose_output_surface_called()); 65 delegated_output_surface_client_.did_lose_output_surface_called());
60 } 66 }
61 67
62 ~SurfaceDisplayOutputSurfaceTest() override {} 68 ~SurfaceDisplayOutputSurfaceTest() override {}
63 69
64 void SwapBuffersWithDamage(const gfx::Rect& damage_rect) { 70 void SwapBuffersWithDamage(const gfx::Rect& damage_rect) {
(...skipping 15 matching lines...) Expand all
80 SwapBuffersWithDamage(display_rect_); 86 SwapBuffersWithDamage(display_rect_);
81 87
82 EXPECT_EQ(0u, display_output_surface_->num_sent_frames()); 88 EXPECT_EQ(0u, display_output_surface_->num_sent_frames());
83 task_runner_->RunUntilIdle(); 89 task_runner_->RunUntilIdle();
84 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 90 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
85 } 91 }
86 92
87 protected: 93 protected:
88 std::unique_ptr<base::SimpleTestTickClock> now_src_; 94 std::unique_ptr<base::SimpleTestTickClock> now_src_;
89 scoped_refptr<OrderedSimpleTaskRunner> task_runner_; 95 scoped_refptr<OrderedSimpleTaskRunner> task_runner_;
90 std::unique_ptr<BackToBackBeginFrameSource> begin_frame_source_;
91 SurfaceIdAllocator allocator_; 96 SurfaceIdAllocator allocator_;
92 97
93 const gfx::Size display_size_; 98 const gfx::Size display_size_;
94 const gfx::Rect display_rect_; 99 const gfx::Rect display_rect_;
95 SurfaceManager surface_manager_; 100 SurfaceManager surface_manager_;
96 TestSharedBitmapManager bitmap_manager_; 101 TestSharedBitmapManager bitmap_manager_;
97 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; 102 TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
98 RendererSettings renderer_settings_;
99 103
100 scoped_refptr<TestContextProvider> context_provider_; 104 scoped_refptr<TestContextProvider> context_provider_;
101 FakeOutputSurface* display_output_surface_ = nullptr; 105 FakeOutputSurface* display_output_surface_ = nullptr;
102 std::unique_ptr<Display> display_; 106 std::unique_ptr<Display> display_;
103 FakeOutputSurfaceClient delegated_output_surface_client_; 107 FakeOutputSurfaceClient delegated_output_surface_client_;
104 std::unique_ptr<SurfaceDisplayOutputSurface> delegated_output_surface_; 108 std::unique_ptr<SurfaceDisplayOutputSurface> delegated_output_surface_;
105 }; 109 };
106 110
107 TEST_F(SurfaceDisplayOutputSurfaceTest, DamageTriggersSwapBuffers) { 111 TEST_F(SurfaceDisplayOutputSurfaceTest, DamageTriggersSwapBuffers) {
108 SwapBuffersWithDamage(display_rect_); 112 SwapBuffersWithDamage(display_rect_);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 145 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
142 146
143 SwapBuffersWithDamage(gfx::Rect()); 147 SwapBuffersWithDamage(gfx::Rect());
144 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 148 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
145 task_runner_->RunUntilIdle(); 149 task_runner_->RunUntilIdle();
146 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 150 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
147 } 151 }
148 152
149 } // namespace 153 } // namespace
150 } // namespace cc 154 } // namespace cc
OLDNEW
« no previous file with comments | « cc/surfaces/display_unittest.cc ('k') | cc/test/pixel_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698