OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/message_loop/message_loop_proxy.h" | 5 #include "base/message_loop/message_loop_proxy.h" |
6 #include "base/threading/simple_thread.h" | 6 #include "base/threading/simple_thread.h" |
7 #include "cc/layers/delegated_frame_provider.h" | 7 #include "cc/layers/delegated_frame_provider.h" |
8 #include "cc/layers/delegated_frame_resource_collection.h" | 8 #include "cc/layers/delegated_frame_resource_collection.h" |
9 #include "cc/layers/delegated_renderer_layer.h" | 9 #include "cc/layers/delegated_renderer_layer.h" |
10 #include "cc/layers/layer.h" | 10 #include "cc/layers/layer.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 | 24 |
25 namespace cc { | 25 namespace cc { |
26 namespace { | 26 namespace { |
27 | 27 |
28 class NoMessageLoopOutputSurface : public OutputSurface { | 28 class NoMessageLoopOutputSurface : public OutputSurface { |
29 public: | 29 public: |
30 NoMessageLoopOutputSurface() : OutputSurface(TestContextProvider::Create()) {} | 30 NoMessageLoopOutputSurface() : OutputSurface(TestContextProvider::Create()) {} |
31 virtual ~NoMessageLoopOutputSurface() {} | 31 virtual ~NoMessageLoopOutputSurface() {} |
32 | 32 |
33 // OutputSurface overrides. | 33 // OutputSurface overrides. |
34 virtual void SwapBuffers(CompositorFrame* frame) OVERRIDE { | 34 virtual void SwapBuffers(CompositorFrame* frame) override { |
35 DCHECK(client_); | 35 DCHECK(client_); |
36 client_->DidSwapBuffers(); | 36 client_->DidSwapBuffers(); |
37 client_->DidSwapBuffersComplete(); | 37 client_->DidSwapBuffersComplete(); |
38 } | 38 } |
39 }; | 39 }; |
40 | 40 |
41 class LayerTreeHostNoMessageLoopTest | 41 class LayerTreeHostNoMessageLoopTest |
42 : public testing::Test, | 42 : public testing::Test, |
43 public base::DelegateSimpleThread::Delegate, | 43 public base::DelegateSimpleThread::Delegate, |
44 public LayerTreeHostClient, | 44 public LayerTreeHostClient, |
45 public LayerTreeHostSingleThreadClient { | 45 public LayerTreeHostSingleThreadClient { |
46 public: | 46 public: |
47 LayerTreeHostNoMessageLoopTest() | 47 LayerTreeHostNoMessageLoopTest() |
48 : did_initialize_output_surface_(false), | 48 : did_initialize_output_surface_(false), |
49 did_commit_(false), | 49 did_commit_(false), |
50 did_commit_and_draw_frame_(false), | 50 did_commit_and_draw_frame_(false), |
51 size_(100, 100), | 51 size_(100, 100), |
52 no_loop_thread_(this, "LayerTreeHostNoMessageLoopTest") {} | 52 no_loop_thread_(this, "LayerTreeHostNoMessageLoopTest") {} |
53 virtual ~LayerTreeHostNoMessageLoopTest() {} | 53 virtual ~LayerTreeHostNoMessageLoopTest() {} |
54 | 54 |
55 // LayerTreeHostClient overrides. | 55 // LayerTreeHostClient overrides. |
56 virtual void WillBeginMainFrame(int frame_id) OVERRIDE {} | 56 virtual void WillBeginMainFrame(int frame_id) override {} |
57 virtual void BeginMainFrame(const BeginFrameArgs& args) OVERRIDE {} | 57 virtual void BeginMainFrame(const BeginFrameArgs& args) override {} |
58 virtual void DidBeginMainFrame() OVERRIDE {} | 58 virtual void DidBeginMainFrame() override {} |
59 virtual void Layout() OVERRIDE {} | 59 virtual void Layout() override {} |
60 virtual void ApplyViewportDeltas(const gfx::Vector2d& inner_delta, | 60 virtual void ApplyViewportDeltas(const gfx::Vector2d& inner_delta, |
61 const gfx::Vector2d& outer_delta, | 61 const gfx::Vector2d& outer_delta, |
62 float page_scale, | 62 float page_scale, |
63 float top_controls_delta) OVERRIDE {} | 63 float top_controls_delta) override {} |
64 virtual void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta, | 64 virtual void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta, |
65 float page_scale, | 65 float page_scale, |
66 float top_controls_delta) OVERRIDE {} | 66 float top_controls_delta) override {} |
67 virtual void RequestNewOutputSurface(bool fallback) OVERRIDE { | 67 virtual void RequestNewOutputSurface(bool fallback) override { |
68 layer_tree_host_->SetOutputSurface( | 68 layer_tree_host_->SetOutputSurface( |
69 make_scoped_ptr<OutputSurface>(new NoMessageLoopOutputSurface)); | 69 make_scoped_ptr<OutputSurface>(new NoMessageLoopOutputSurface)); |
70 } | 70 } |
71 virtual void DidInitializeOutputSurface() OVERRIDE { | 71 virtual void DidInitializeOutputSurface() override { |
72 did_initialize_output_surface_ = true; | 72 did_initialize_output_surface_ = true; |
73 } | 73 } |
74 virtual void WillCommit() OVERRIDE {} | 74 virtual void WillCommit() override {} |
75 virtual void DidCommit() OVERRIDE { did_commit_ = true; } | 75 virtual void DidCommit() override { did_commit_ = true; } |
76 virtual void DidCommitAndDrawFrame() OVERRIDE { | 76 virtual void DidCommitAndDrawFrame() override { |
77 did_commit_and_draw_frame_ = true; | 77 did_commit_and_draw_frame_ = true; |
78 } | 78 } |
79 virtual void DidCompleteSwapBuffers() OVERRIDE {} | 79 virtual void DidCompleteSwapBuffers() override {} |
80 | 80 |
81 // LayerTreeHostSingleThreadClient overrides. | 81 // LayerTreeHostSingleThreadClient overrides. |
82 virtual void DidPostSwapBuffers() OVERRIDE {} | 82 virtual void DidPostSwapBuffers() override {} |
83 virtual void DidAbortSwapBuffers() OVERRIDE {} | 83 virtual void DidAbortSwapBuffers() override {} |
84 | 84 |
85 void RunTest() { | 85 void RunTest() { |
86 no_loop_thread_.Start(); | 86 no_loop_thread_.Start(); |
87 no_loop_thread_.Join(); | 87 no_loop_thread_.Join(); |
88 } | 88 } |
89 | 89 |
90 // base::DelegateSimpleThread::Delegate override. | 90 // base::DelegateSimpleThread::Delegate override. |
91 virtual void Run() OVERRIDE { | 91 virtual void Run() override { |
92 ASSERT_FALSE(base::MessageLoopProxy::current().get()); | 92 ASSERT_FALSE(base::MessageLoopProxy::current().get()); |
93 RunTestWithoutMessageLoop(); | 93 RunTestWithoutMessageLoop(); |
94 EXPECT_FALSE(base::MessageLoopProxy::current().get()); | 94 EXPECT_FALSE(base::MessageLoopProxy::current().get()); |
95 } | 95 } |
96 | 96 |
97 protected: | 97 protected: |
98 virtual void RunTestWithoutMessageLoop() = 0; | 98 virtual void RunTestWithoutMessageLoop() = 0; |
99 | 99 |
100 void SetupLayerTreeHost() { | 100 void SetupLayerTreeHost() { |
101 LayerTreeSettings settings; | 101 LayerTreeSettings settings; |
(...skipping 28 matching lines...) Expand all Loading... |
130 bool did_commit_and_draw_frame_; | 130 bool did_commit_and_draw_frame_; |
131 gfx::Size size_; | 131 gfx::Size size_; |
132 | 132 |
133 private: | 133 private: |
134 base::DelegateSimpleThread no_loop_thread_; | 134 base::DelegateSimpleThread no_loop_thread_; |
135 }; | 135 }; |
136 | 136 |
137 class LayerTreeHostNoMessageLoopSmokeTest | 137 class LayerTreeHostNoMessageLoopSmokeTest |
138 : public LayerTreeHostNoMessageLoopTest { | 138 : public LayerTreeHostNoMessageLoopTest { |
139 protected: | 139 protected: |
140 virtual void RunTestWithoutMessageLoop() OVERRIDE { | 140 virtual void RunTestWithoutMessageLoop() override { |
141 gfx::Size size(100, 100); | 141 gfx::Size size(100, 100); |
142 | 142 |
143 // Set up root layer. | 143 // Set up root layer. |
144 { | 144 { |
145 scoped_refptr<SolidColorLayer> solid_color_layer = | 145 scoped_refptr<SolidColorLayer> solid_color_layer = |
146 SolidColorLayer::Create(); | 146 SolidColorLayer::Create(); |
147 solid_color_layer->SetBackgroundColor(SK_ColorRED); | 147 solid_color_layer->SetBackgroundColor(SK_ColorRED); |
148 solid_color_layer->SetBounds(size_); | 148 solid_color_layer->SetBounds(size_); |
149 solid_color_layer->SetIsDrawable(true); | 149 solid_color_layer->SetIsDrawable(true); |
150 root_layer_ = solid_color_layer; | 150 root_layer_ = solid_color_layer; |
151 } | 151 } |
152 | 152 |
153 SetupLayerTreeHost(); | 153 SetupLayerTreeHost(); |
154 Composite(); | 154 Composite(); |
155 TearDownLayerTreeHost(); | 155 TearDownLayerTreeHost(); |
156 } | 156 } |
157 }; | 157 }; |
158 | 158 |
159 TEST_F(LayerTreeHostNoMessageLoopSmokeTest, SmokeTest) { | 159 TEST_F(LayerTreeHostNoMessageLoopSmokeTest, SmokeTest) { |
160 RunTest(); | 160 RunTest(); |
161 } | 161 } |
162 | 162 |
163 class LayerTreeHostNoMessageLoopDelegatedLayer | 163 class LayerTreeHostNoMessageLoopDelegatedLayer |
164 : public LayerTreeHostNoMessageLoopTest, | 164 : public LayerTreeHostNoMessageLoopTest, |
165 public DelegatedFrameResourceCollectionClient { | 165 public DelegatedFrameResourceCollectionClient { |
166 protected: | 166 protected: |
167 virtual void RunTestWithoutMessageLoop() OVERRIDE { | 167 virtual void RunTestWithoutMessageLoop() override { |
168 resource_collection_ = new DelegatedFrameResourceCollection; | 168 resource_collection_ = new DelegatedFrameResourceCollection; |
169 frame_provider_ = new DelegatedFrameProvider( | 169 frame_provider_ = new DelegatedFrameProvider( |
170 resource_collection_.get(), CreateFrameDataWithResource(998)); | 170 resource_collection_.get(), CreateFrameDataWithResource(998)); |
171 | 171 |
172 root_layer_ = Layer::Create(); | 172 root_layer_ = Layer::Create(); |
173 delegated_layer_ = | 173 delegated_layer_ = |
174 FakeDelegatedRendererLayer::Create(frame_provider_.get()); | 174 FakeDelegatedRendererLayer::Create(frame_provider_.get()); |
175 delegated_layer_->SetBounds(size_); | 175 delegated_layer_->SetBounds(size_); |
176 delegated_layer_->SetIsDrawable(true); | 176 delegated_layer_->SetIsDrawable(true); |
177 root_layer_->AddChild(delegated_layer_); | 177 root_layer_->AddChild(delegated_layer_); |
(...skipping 13 matching lines...) Expand all Loading... |
191 TearDownLayerTreeHost(); | 191 TearDownLayerTreeHost(); |
192 delegated_layer_ = NULL; | 192 delegated_layer_ = NULL; |
193 frame_provider_ = NULL; | 193 frame_provider_ = NULL; |
194 | 194 |
195 // Resource from second frame should be returned. | 195 // Resource from second frame should be returned. |
196 CheckReturnedResource(1u); | 196 CheckReturnedResource(1u); |
197 resource_collection_ = NULL; | 197 resource_collection_ = NULL; |
198 } | 198 } |
199 | 199 |
200 // DelegatedFrameResourceCollectionClient overrides. | 200 // DelegatedFrameResourceCollectionClient overrides. |
201 virtual void UnusedResourcesAreAvailable() OVERRIDE {} | 201 virtual void UnusedResourcesAreAvailable() override {} |
202 | 202 |
203 private: | 203 private: |
204 scoped_ptr<DelegatedFrameData> CreateFrameDataWithResource( | 204 scoped_ptr<DelegatedFrameData> CreateFrameDataWithResource( |
205 ResourceProvider::ResourceId resource_id) { | 205 ResourceProvider::ResourceId resource_id) { |
206 scoped_ptr<DelegatedFrameData> frame(new DelegatedFrameData); | 206 scoped_ptr<DelegatedFrameData> frame(new DelegatedFrameData); |
207 gfx::Rect frame_rect(size_); | 207 gfx::Rect frame_rect(size_); |
208 | 208 |
209 scoped_ptr<RenderPass> root_pass(RenderPass::Create()); | 209 scoped_ptr<RenderPass> root_pass(RenderPass::Create()); |
210 root_pass->SetNew( | 210 root_pass->SetNew( |
211 RenderPassId(1, 1), frame_rect, frame_rect, gfx::Transform()); | 211 RenderPassId(1, 1), frame_rect, frame_rect, gfx::Transform()); |
(...skipping 19 matching lines...) Expand all Loading... |
231 scoped_refptr<DelegatedFrameProvider> frame_provider_; | 231 scoped_refptr<DelegatedFrameProvider> frame_provider_; |
232 scoped_refptr<DelegatedRendererLayer> delegated_layer_; | 232 scoped_refptr<DelegatedRendererLayer> delegated_layer_; |
233 }; | 233 }; |
234 | 234 |
235 TEST_F(LayerTreeHostNoMessageLoopDelegatedLayer, SingleDelegatedLayer) { | 235 TEST_F(LayerTreeHostNoMessageLoopDelegatedLayer, SingleDelegatedLayer) { |
236 RunTest(); | 236 RunTest(); |
237 } | 237 } |
238 | 238 |
239 } // namespace | 239 } // namespace |
240 } // namespace cc | 240 } // namespace cc |
OLD | NEW |