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

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

Issue 2286273003: Make cc::Display not own its BeginFrameSource (Closed)
Patch Set: Created 4 years, 3 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
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/output/texture_mailbox_deleter.h"
(...skipping 24 matching lines...) Expand all
35 allocator_(kArbitraryClientId), 35 allocator_(kArbitraryClientId),
36 display_size_(1920, 1080), 36 display_size_(1920, 1080),
37 display_rect_(display_size_), 37 display_rect_(display_size_),
38 context_provider_(TestContextProvider::Create()) { 38 context_provider_(TestContextProvider::Create()) {
39 surface_manager_.RegisterSurfaceClientId(allocator_.client_id()); 39 surface_manager_.RegisterSurfaceClientId(allocator_.client_id());
40 40
41 std::unique_ptr<FakeOutputSurface> display_output_surface = 41 std::unique_ptr<FakeOutputSurface> display_output_surface =
42 FakeOutputSurface::Create3d(); 42 FakeOutputSurface::Create3d();
43 display_output_surface_ = display_output_surface.get(); 43 display_output_surface_ = display_output_surface.get();
44 44
45 std::unique_ptr<BeginFrameSource> begin_frame_source( 45 begin_frame_source_.reset(new BackToBackBeginFrameSource(
46 new BackToBackBeginFrameSource( 46 base::MakeUnique<DelayBasedTimeSource>(task_runner_.get())));
47 base::MakeUnique<DelayBasedTimeSource>(task_runner_.get())));
48 47
49 int max_frames_pending = 2; 48 int max_frames_pending = 2;
50 std::unique_ptr<DisplayScheduler> scheduler(new DisplayScheduler( 49 std::unique_ptr<DisplayScheduler> scheduler(new DisplayScheduler(
51 begin_frame_source.get(), task_runner_.get(), max_frames_pending)); 50 begin_frame_source_.get(), task_runner_.get(), max_frames_pending));
52 51
53 display_.reset(new Display( 52 display_.reset(new Display(
54 &bitmap_manager_, &gpu_memory_buffer_manager_, RendererSettings(), 53 &bitmap_manager_, &gpu_memory_buffer_manager_, RendererSettings(),
55 std::move(begin_frame_source), std::move(display_output_surface), 54 begin_frame_source_.get(), std::move(display_output_surface),
56 std::move(scheduler), 55 std::move(scheduler),
57 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get()))); 56 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get())));
58 delegated_output_surface_.reset(new SurfaceDisplayOutputSurface( 57 delegated_output_surface_.reset(new SurfaceDisplayOutputSurface(
59 &surface_manager_, &allocator_, display_.get(), context_provider_, 58 &surface_manager_, &allocator_, display_.get(), context_provider_,
60 nullptr)); 59 nullptr));
61 60
62 delegated_output_surface_->BindToClient(&delegated_output_surface_client_); 61 delegated_output_surface_->BindToClient(&delegated_output_surface_client_);
63 display_->Resize(display_size_); 62 display_->Resize(display_size_);
64 display_->SetVisible(true); 63 display_->SetVisible(true);
65 64
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 98
100 const gfx::Size display_size_; 99 const gfx::Size display_size_;
101 const gfx::Rect display_rect_; 100 const gfx::Rect display_rect_;
102 SurfaceManager surface_manager_; 101 SurfaceManager surface_manager_;
103 TestSharedBitmapManager bitmap_manager_; 102 TestSharedBitmapManager bitmap_manager_;
104 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; 103 TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
105 104
106 scoped_refptr<TestContextProvider> context_provider_; 105 scoped_refptr<TestContextProvider> context_provider_;
107 FakeOutputSurface* display_output_surface_ = nullptr; 106 FakeOutputSurface* display_output_surface_ = nullptr;
108 std::unique_ptr<Display> display_; 107 std::unique_ptr<Display> display_;
108 std::unique_ptr<BeginFrameSource> begin_frame_source_;
109 FakeOutputSurfaceClient delegated_output_surface_client_; 109 FakeOutputSurfaceClient delegated_output_surface_client_;
110 std::unique_ptr<SurfaceDisplayOutputSurface> delegated_output_surface_; 110 std::unique_ptr<SurfaceDisplayOutputSurface> delegated_output_surface_;
111 }; 111 };
112 112
113 TEST_F(SurfaceDisplayOutputSurfaceTest, DamageTriggersSwapBuffers) { 113 TEST_F(SurfaceDisplayOutputSurfaceTest, DamageTriggersSwapBuffers) {
114 SwapBuffersWithDamage(display_rect_); 114 SwapBuffersWithDamage(display_rect_);
115 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 115 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
116 task_runner_->RunUntilIdle(); 116 task_runner_->RunUntilIdle();
117 EXPECT_EQ(2u, display_output_surface_->num_sent_frames()); 117 EXPECT_EQ(2u, display_output_surface_->num_sent_frames());
118 } 118 }
(...skipping 28 matching lines...) Expand all
147 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 147 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
148 148
149 SwapBuffersWithDamage(gfx::Rect()); 149 SwapBuffersWithDamage(gfx::Rect());
150 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 150 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
151 task_runner_->RunUntilIdle(); 151 task_runner_->RunUntilIdle();
152 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 152 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
153 } 153 }
154 154
155 } // namespace 155 } // namespace
156 } // namespace cc 156 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698