OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
232 : did_notify_ready_to_activate_(false), | 232 : did_notify_ready_to_activate_(false), |
233 all_tiles_required_for_activation_are_ready_to_draw_(false), | 233 all_tiles_required_for_activation_are_ready_to_draw_(false), |
234 required_for_activation_count_(0) {} | 234 required_for_activation_count_(0) {} |
235 | 235 |
236 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 236 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
237 | 237 |
238 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { | 238 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { |
239 const std::vector<PictureLayerImpl*>& layers = | 239 const std::vector<PictureLayerImpl*>& layers = |
240 impl->sync_tree()->picture_layers(); | 240 impl->sync_tree()->picture_layers(); |
241 required_for_activation_count_ = 0; | 241 required_for_activation_count_ = 0; |
242 for (const auto& layer : layers) { | 242 for (auto* layer : layers) { |
243 FakePictureLayerImpl* fake_layer = | 243 FakePictureLayerImpl* fake_layer = |
244 static_cast<FakePictureLayerImpl*>(layer); | 244 static_cast<FakePictureLayerImpl*>(layer); |
245 required_for_activation_count_ += | 245 required_for_activation_count_ += |
246 fake_layer->CountTilesRequiredForActivation(); | 246 fake_layer->CountTilesRequiredForActivation(); |
247 } | 247 } |
248 } | 248 } |
249 | 249 |
250 void NotifyReadyToActivateOnThread(LayerTreeHostImpl* impl) override { | 250 void NotifyReadyToActivateOnThread(LayerTreeHostImpl* impl) override { |
251 did_notify_ready_to_activate_ = true; | 251 did_notify_ready_to_activate_ = true; |
252 all_tiles_required_for_activation_are_ready_to_draw_ = | 252 all_tiles_required_for_activation_are_ready_to_draw_ = |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 required_for_draw_count_(0) {} | 309 required_for_draw_count_(0) {} |
310 | 310 |
311 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 311 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
312 | 312 |
313 void NotifyReadyToDrawOnThread(LayerTreeHostImpl* impl) override { | 313 void NotifyReadyToDrawOnThread(LayerTreeHostImpl* impl) override { |
314 did_notify_ready_to_draw_ = true; | 314 did_notify_ready_to_draw_ = true; |
315 const std::vector<PictureLayerImpl*>& layers = | 315 const std::vector<PictureLayerImpl*>& layers = |
316 impl->active_tree()->picture_layers(); | 316 impl->active_tree()->picture_layers(); |
317 all_tiles_required_for_draw_are_ready_to_draw_ = | 317 all_tiles_required_for_draw_are_ready_to_draw_ = |
318 impl->tile_manager()->IsReadyToDraw(); | 318 impl->tile_manager()->IsReadyToDraw(); |
319 for (const auto& layer : layers) { | 319 for (auto* layer : layers) { |
320 FakePictureLayerImpl* fake_layer = | 320 FakePictureLayerImpl* fake_layer = |
321 static_cast<FakePictureLayerImpl*>(layer); | 321 static_cast<FakePictureLayerImpl*>(layer); |
322 required_for_draw_count_ += fake_layer->CountTilesRequiredForDraw(); | 322 required_for_draw_count_ += fake_layer->CountTilesRequiredForDraw(); |
323 } | 323 } |
324 | 324 |
325 EndTest(); | 325 EndTest(); |
326 } | 326 } |
327 | 327 |
328 void AfterTest() override { | 328 void AfterTest() override { |
329 EXPECT_TRUE(did_notify_ready_to_draw_); | 329 EXPECT_TRUE(did_notify_ready_to_draw_); |
(...skipping 1045 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1375 | 1375 |
1376 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { | 1376 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { |
1377 if (num_draws_ < 2) { | 1377 if (num_draws_ < 2) { |
1378 PostSetNeedsRedrawRectToMainThread(invalid_rect_); | 1378 PostSetNeedsRedrawRectToMainThread(invalid_rect_); |
1379 num_draws_++; | 1379 num_draws_++; |
1380 } | 1380 } |
1381 } | 1381 } |
1382 | 1382 |
1383 void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { | 1383 void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { |
1384 if (num_draws_ == 2) { | 1384 if (num_draws_ == 2) { |
1385 auto pending_tree = host_impl->pending_tree(); | 1385 auto* pending_tree = host_impl->pending_tree(); |
1386 auto pending_layer_impl = static_cast<FakePictureLayerImpl*>( | 1386 auto* pending_layer_impl = static_cast<FakePictureLayerImpl*>( |
1387 pending_tree->root_layer_for_testing()); | 1387 pending_tree->root_layer_for_testing()); |
1388 EXPECT_NE(pending_layer_impl, nullptr); | 1388 EXPECT_NE(pending_layer_impl, nullptr); |
1389 | 1389 |
1390 auto active_tree = host_impl->pending_tree(); | 1390 auto* active_tree = host_impl->pending_tree(); |
1391 auto active_layer_impl = static_cast<FakePictureLayerImpl*>( | 1391 auto* active_layer_impl = static_cast<FakePictureLayerImpl*>( |
1392 active_tree->root_layer_for_testing()); | 1392 active_tree->root_layer_for_testing()); |
1393 EXPECT_NE(pending_layer_impl, nullptr); | 1393 EXPECT_NE(pending_layer_impl, nullptr); |
1394 | 1394 |
1395 auto active_tiling_set = active_layer_impl->picture_layer_tiling_set(); | 1395 auto* active_tiling_set = active_layer_impl->picture_layer_tiling_set(); |
1396 auto active_tiling = active_tiling_set->tiling_at(0); | 1396 auto* active_tiling = active_tiling_set->tiling_at(0); |
1397 auto pending_tiling_set = pending_layer_impl->picture_layer_tiling_set(); | 1397 auto* pending_tiling_set = pending_layer_impl->picture_layer_tiling_set(); |
1398 auto pending_tiling = pending_tiling_set->tiling_at(0); | 1398 auto* pending_tiling = pending_tiling_set->tiling_at(0); |
1399 EXPECT_EQ( | 1399 EXPECT_EQ( |
1400 pending_tiling->TilingDataForTesting().max_texture_size().width(), | 1400 pending_tiling->TilingDataForTesting().max_texture_size().width(), |
1401 active_tiling->TilingDataForTesting().max_texture_size().width()); | 1401 active_tiling->TilingDataForTesting().max_texture_size().width()); |
1402 EndTest(); | 1402 EndTest(); |
1403 } | 1403 } |
1404 } | 1404 } |
1405 | 1405 |
1406 void DidCommitAndDrawFrame() override { | 1406 void DidCommitAndDrawFrame() override { |
1407 // On the second commit, resize the viewport. | 1407 // On the second commit, resize the viewport. |
1408 if (num_draws_ == 1) { | 1408 if (num_draws_ == 1) { |
(...skipping 4100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5509 client_.set_bounds(root_clip->bounds()); | 5509 client_.set_bounds(root_clip->bounds()); |
5510 } | 5510 } |
5511 | 5511 |
5512 // Returns the delta scale of all quads in the frame's root pass from their | 5512 // Returns the delta scale of all quads in the frame's root pass from their |
5513 // ideal, or 0 if they are not all the same. | 5513 // ideal, or 0 if they are not all the same. |
5514 float FrameQuadScaleDeltaFromIdeal(LayerTreeHostImpl::FrameData* frame_data) { | 5514 float FrameQuadScaleDeltaFromIdeal(LayerTreeHostImpl::FrameData* frame_data) { |
5515 if (frame_data->has_no_damage) | 5515 if (frame_data->has_no_damage) |
5516 return 0.f; | 5516 return 0.f; |
5517 float frame_scale = 0.f; | 5517 float frame_scale = 0.f; |
5518 RenderPass* root_pass = frame_data->render_passes.back().get(); | 5518 RenderPass* root_pass = frame_data->render_passes.back().get(); |
5519 for (const auto& draw_quad : root_pass->quad_list) { | 5519 for (auto* draw_quad : root_pass->quad_list) { |
5520 // Checkerboards mean an incomplete frame. | 5520 // Checkerboards mean an incomplete frame. |
5521 if (draw_quad->material != DrawQuad::TILED_CONTENT) | 5521 if (draw_quad->material != DrawQuad::TILED_CONTENT) |
5522 return 0.f; | 5522 return 0.f; |
5523 const TileDrawQuad* quad = TileDrawQuad::MaterialCast(draw_quad); | 5523 const TileDrawQuad* quad = TileDrawQuad::MaterialCast(draw_quad); |
5524 float quad_scale = | 5524 float quad_scale = |
5525 quad->tex_coord_rect.width() / static_cast<float>(quad->rect.width()); | 5525 quad->tex_coord_rect.width() / static_cast<float>(quad->rect.width()); |
5526 float transform_scale = SkMScalarToFloat( | 5526 float transform_scale = SkMScalarToFloat( |
5527 quad->shared_quad_state->quad_to_target_transform.matrix().get(0, 0)); | 5527 quad->shared_quad_state->quad_to_target_transform.matrix().get(0, 0)); |
5528 float scale = quad_scale / transform_scale; | 5528 float scale = quad_scale / transform_scale; |
5529 if (frame_scale != 0.f && frame_scale != scale) | 5529 if (frame_scale != 0.f && frame_scale != scale) |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5812 client_.set_bounds(root_clip->bounds()); | 5812 client_.set_bounds(root_clip->bounds()); |
5813 } | 5813 } |
5814 | 5814 |
5815 // Returns the delta scale of all quads in the frame's root pass from their | 5815 // Returns the delta scale of all quads in the frame's root pass from their |
5816 // ideal, or 0 if they are not all the same. | 5816 // ideal, or 0 if they are not all the same. |
5817 float FrameQuadScaleDeltaFromIdeal(LayerTreeHostImpl::FrameData* frame_data) { | 5817 float FrameQuadScaleDeltaFromIdeal(LayerTreeHostImpl::FrameData* frame_data) { |
5818 if (frame_data->has_no_damage) | 5818 if (frame_data->has_no_damage) |
5819 return 0.f; | 5819 return 0.f; |
5820 float frame_scale = 0.f; | 5820 float frame_scale = 0.f; |
5821 RenderPass* root_pass = frame_data->render_passes.back().get(); | 5821 RenderPass* root_pass = frame_data->render_passes.back().get(); |
5822 for (const auto& draw_quad : root_pass->quad_list) { | 5822 for (auto* draw_quad : root_pass->quad_list) { |
5823 const TileDrawQuad* quad = TileDrawQuad::MaterialCast(draw_quad); | 5823 const TileDrawQuad* quad = TileDrawQuad::MaterialCast(draw_quad); |
5824 float quad_scale = | 5824 float quad_scale = |
5825 quad->tex_coord_rect.width() / static_cast<float>(quad->rect.width()); | 5825 quad->tex_coord_rect.width() / static_cast<float>(quad->rect.width()); |
5826 float transform_scale = SkMScalarToFloat( | 5826 float transform_scale = SkMScalarToFloat( |
5827 quad->shared_quad_state->quad_to_target_transform.matrix().get(0, 0)); | 5827 quad->shared_quad_state->quad_to_target_transform.matrix().get(0, 0)); |
5828 float scale = quad_scale / transform_scale; | 5828 float scale = quad_scale / transform_scale; |
5829 if (frame_scale != 0.f && frame_scale != scale) | 5829 if (frame_scale != 0.f && frame_scale != scale) |
5830 return 0.f; | 5830 return 0.f; |
5831 frame_scale = scale; | 5831 frame_scale = scale; |
5832 } | 5832 } |
(...skipping 1040 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6873 private: | 6873 private: |
6874 FakeContentLayerClient client_; | 6874 FakeContentLayerClient client_; |
6875 const gfx::Size viewport_size_; | 6875 const gfx::Size viewport_size_; |
6876 const gfx::Size large_image_size_; | 6876 const gfx::Size large_image_size_; |
6877 }; | 6877 }; |
6878 | 6878 |
6879 SINGLE_AND_MULTI_THREAD_TEST_F(GpuRasterizationSucceedsWithLargeImage); | 6879 SINGLE_AND_MULTI_THREAD_TEST_F(GpuRasterizationSucceedsWithLargeImage); |
6880 | 6880 |
6881 } // namespace | 6881 } // namespace |
6882 } // namespace cc | 6882 } // namespace cc |
OLD | NEW |