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

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

Issue 2565783002: Moves ownership of the cc::Display's BeginFrameSource out of Display. (Closed)
Patch Set: rebase. Created 4 years 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/compositor_frame_sink_support.cc ('k') | cc/surfaces/display.h » ('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/direct_compositor_frame_sink.h" 5 #include "cc/surfaces/direct_compositor_frame_sink.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 task_runner_(new OrderedSimpleTaskRunner(now_src_.get(), true)), 35 task_runner_(new OrderedSimpleTaskRunner(now_src_.get(), true)),
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_.RegisterFrameSinkId(kArbitraryFrameSinkId); 39 surface_manager_.RegisterFrameSinkId(kArbitraryFrameSinkId);
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(
51 begin_frame_source.get(), task_runner_.get(), max_frames_pending)); 50 new DisplayScheduler(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 kArbitraryFrameSinkId, std::move(begin_frame_source), 54 kArbitraryFrameSinkId, begin_frame_source_.get(),
56 std::move(display_output_surface), std::move(scheduler), 55 std::move(display_output_surface), std::move(scheduler),
57 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get()))); 56 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get())));
58 compositor_frame_sink_.reset(new DirectCompositorFrameSink( 57 compositor_frame_sink_.reset(new DirectCompositorFrameSink(
59 kArbitraryFrameSinkId, &surface_manager_, display_.get(), 58 kArbitraryFrameSinkId, &surface_manager_, display_.get(),
60 context_provider_, nullptr, &gpu_memory_buffer_manager_, 59 context_provider_, nullptr, &gpu_memory_buffer_manager_,
61 &bitmap_manager_)); 60 &bitmap_manager_));
62 61
63 compositor_frame_sink_->BindToClient(&compositor_frame_sink_client_); 62 compositor_frame_sink_->BindToClient(&compositor_frame_sink_client_);
64 display_->Resize(display_size_); 63 display_->Resize(display_size_);
65 display_->SetVisible(true); 64 display_->SetVisible(true);
(...skipping 30 matching lines...) Expand all
96 scoped_refptr<OrderedSimpleTaskRunner> task_runner_; 95 scoped_refptr<OrderedSimpleTaskRunner> task_runner_;
97 96
98 const gfx::Size display_size_; 97 const gfx::Size display_size_;
99 const gfx::Rect display_rect_; 98 const gfx::Rect display_rect_;
100 SurfaceManager surface_manager_; 99 SurfaceManager surface_manager_;
101 TestSharedBitmapManager bitmap_manager_; 100 TestSharedBitmapManager bitmap_manager_;
102 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; 101 TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
103 102
104 scoped_refptr<TestContextProvider> context_provider_; 103 scoped_refptr<TestContextProvider> context_provider_;
105 FakeOutputSurface* display_output_surface_ = nullptr; 104 FakeOutputSurface* display_output_surface_ = nullptr;
105 std::unique_ptr<BeginFrameSource> begin_frame_source_;
106 std::unique_ptr<Display> display_; 106 std::unique_ptr<Display> display_;
107 FakeCompositorFrameSinkClient compositor_frame_sink_client_; 107 FakeCompositorFrameSinkClient compositor_frame_sink_client_;
108 std::unique_ptr<DirectCompositorFrameSink> compositor_frame_sink_; 108 std::unique_ptr<DirectCompositorFrameSink> compositor_frame_sink_;
109 }; 109 };
110 110
111 TEST_F(DirectCompositorFrameSinkTest, DamageTriggersSwapBuffers) { 111 TEST_F(DirectCompositorFrameSinkTest, DamageTriggersSwapBuffers) {
112 SwapBuffersWithDamage(display_rect_); 112 SwapBuffersWithDamage(display_rect_);
113 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 113 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
114 task_runner_->RunUntilIdle(); 114 task_runner_->RunUntilIdle();
115 EXPECT_EQ(2u, display_output_surface_->num_sent_frames()); 115 EXPECT_EQ(2u, display_output_surface_->num_sent_frames());
(...skipping 29 matching lines...) Expand all
145 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 145 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
146 146
147 SwapBuffersWithDamage(gfx::Rect()); 147 SwapBuffersWithDamage(gfx::Rect());
148 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 148 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
149 task_runner_->RunUntilIdle(); 149 task_runner_->RunUntilIdle();
150 EXPECT_EQ(1u, display_output_surface_->num_sent_frames()); 150 EXPECT_EQ(1u, display_output_surface_->num_sent_frames());
151 } 151 }
152 152
153 } // namespace 153 } // namespace
154 } // namespace cc 154 } // namespace cc
OLDNEW
« no previous file with comments | « cc/surfaces/compositor_frame_sink_support.cc ('k') | cc/surfaces/display.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698