OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/layers/picture_layer_impl.h" | 5 #include "cc/layers/picture_layer_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <set> | 9 #include <set> |
10 #include <utility> | 10 #include <utility> |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
263 // This test verifies that when drawing the contents of a specific tile | 263 // This test verifies that when drawing the contents of a specific tile |
264 // at content scale 1.0, the playback canvas never receives content from | 264 // at content scale 1.0, the playback canvas never receives content from |
265 // neighboring tiles which indicates that the tile grid embedded in | 265 // neighboring tiles which indicates that the tile grid embedded in |
266 // SkPicture is perfectly aligned with the compositor's tiles. | 266 // SkPicture is perfectly aligned with the compositor's tiles. |
267 EXPECT_EQ(1u, mock_canvas.rects_.size()); | 267 EXPECT_EQ(1u, mock_canvas.rects_.size()); |
268 EXPECT_RECT_EQ(*rect_iter, mock_canvas.rects_[0]); | 268 EXPECT_RECT_EQ(*rect_iter, mock_canvas.rects_[0]); |
269 rect_iter++; | 269 rect_iter++; |
270 } | 270 } |
271 } | 271 } |
272 | 272 |
273 void TestQuadsForSolidColor(bool test_for_solid) { | |
danakj
2014/09/15 16:26:35
This code is soo far away from the actual tests. C
hendrikw
2014/09/15 16:59:40
Acknowledged.
| |
274 base::TimeTicks time_ticks; | |
275 time_ticks += base::TimeDelta::FromMilliseconds(1); | |
276 host_impl_.SetCurrentBeginFrameArgs( | |
277 CreateBeginFrameArgsForTesting(time_ticks)); | |
278 | |
279 gfx::Size tile_size(100, 100); | |
280 gfx::Size layer_bounds(200, 200); | |
281 gfx::Rect layer_rect(layer_bounds); | |
282 | |
283 FakeContentLayerClient client; | |
284 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); | |
285 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(); | |
286 host->SetRootLayer(layer); | |
287 PicturePile* pile = layer->GetPicturePileForTesting(); | |
288 | |
289 host_impl_.SetViewportSize(layer_bounds); | |
290 | |
291 int frame_number = 0; | |
292 FakeRenderingStatsInstrumentation stats_instrumentation; | |
293 | |
294 client.set_fill_with_nonsolid_color(!test_for_solid); | |
295 | |
296 Region invalidation(layer_rect); | |
297 pile->UpdateAndExpandInvalidation(&client, | |
298 &invalidation, | |
299 SK_ColorWHITE, | |
300 false, | |
301 false, | |
302 layer_bounds, | |
303 layer_rect, | |
304 frame_number++, | |
305 Picture::RECORD_NORMALLY, | |
306 &stats_instrumentation); | |
307 | |
308 scoped_refptr<PicturePileImpl> pending_pile = | |
309 PicturePileImpl::CreateFromOther(pile); | |
310 | |
311 SetupPendingTree(pending_pile); | |
312 ActivateTree(); | |
313 | |
314 if (test_for_solid) { | |
315 EXPECT_EQ(0, active_layer_->tilings()->num_tilings()); | |
316 } else { | |
317 active_layer_->set_fixed_tile_size(tile_size); | |
318 host_impl_.active_tree()->UpdateDrawProperties(); | |
319 std::vector<Tile*> tiles = | |
vmpstr
2014/09/15 15:45:07
you should ASSERT_TRUE(active_layer_->tilings());
hendrikw
2014/09/15 16:59:40
Acknowledged.
But a failure in a test doesn't pre
danakj
2014/09/15 17:01:22
An EXPECT_FOO failure continues the test. An ASSER
| |
320 active_layer_->tilings()->tiling_at(0)->AllTilesForTesting(); | |
321 EXPECT_FALSE(tiles.empty()); | |
322 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); | |
323 } | |
324 | |
325 MockOcclusionTracker<LayerImpl> occlusion_tracker; | |
326 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); | |
327 AppendQuadsData data; | |
328 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, NULL); | |
329 active_layer_->AppendQuads(render_pass.get(), occlusion_tracker, &data); | |
330 active_layer_->DidDraw(NULL); | |
331 | |
332 DrawQuad::Material expected = test_for_solid | |
333 ? DrawQuad::Material::SOLID_COLOR | |
334 : DrawQuad::Material::TILED_CONTENT; | |
335 EXPECT_EQ(expected, render_pass->quad_list.front()->material); | |
336 } | |
337 | |
273 FakeImplProxy proxy_; | 338 FakeImplProxy proxy_; |
274 TestSharedBitmapManager shared_bitmap_manager_; | 339 TestSharedBitmapManager shared_bitmap_manager_; |
275 FakeLayerTreeHostImpl host_impl_; | 340 FakeLayerTreeHostImpl host_impl_; |
276 int id_; | 341 int id_; |
277 FakePictureLayerImpl* pending_layer_; | 342 FakePictureLayerImpl* pending_layer_; |
278 FakePictureLayerImpl* old_pending_layer_; | 343 FakePictureLayerImpl* old_pending_layer_; |
279 FakePictureLayerImpl* active_layer_; | 344 FakePictureLayerImpl* active_layer_; |
280 | 345 |
281 private: | 346 private: |
282 DISALLOW_COPY_AND_ASSIGN(PictureLayerImplTest); | 347 DISALLOW_COPY_AND_ASSIGN(PictureLayerImplTest); |
(...skipping 3932 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4215 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); | 4280 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); |
4216 | 4281 |
4217 ActivateTree(); | 4282 ActivateTree(); |
4218 EXPECT_TRUE(active_layer_->GetRecycledTwinLayer()); | 4283 EXPECT_TRUE(active_layer_->GetRecycledTwinLayer()); |
4219 EXPECT_EQ(old_pending_layer_, active_layer_->GetRecycledTwinLayer()); | 4284 EXPECT_EQ(old_pending_layer_, active_layer_->GetRecycledTwinLayer()); |
4220 | 4285 |
4221 host_impl_.ResetRecycleTreeForTesting(); | 4286 host_impl_.ResetRecycleTreeForTesting(); |
4222 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); | 4287 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); |
4223 } | 4288 } |
4224 | 4289 |
4290 TEST_F(PictureLayerImplTest, DrawSolidQuads) { | |
4291 TestQuadsForSolidColor(true); | |
4292 } | |
4293 | |
4294 TEST_F(PictureLayerImplTest, DrawNonSolidQuads) { | |
4295 TestQuadsForSolidColor(false); | |
4296 } | |
4297 | |
4225 } // namespace | 4298 } // namespace |
4226 } // namespace cc | 4299 } // namespace cc |
OLD | NEW |