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

Side by Side Diff: cc/layers/picture_layer_impl_unittest.cc

Issue 551463005: Revert of cc: Add occlusion checker as a fixed view of occlusion tracker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/resources/picture_layer_tiling.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 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 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 float page_scale_factor, 153 float page_scale_factor,
154 float maximum_animation_contents_scale, 154 float maximum_animation_contents_scale,
155 bool animating_transform_to_screen) { 155 bool animating_transform_to_screen) {
156 layer->draw_properties().ideal_contents_scale = ideal_contents_scale; 156 layer->draw_properties().ideal_contents_scale = ideal_contents_scale;
157 layer->draw_properties().device_scale_factor = device_scale_factor; 157 layer->draw_properties().device_scale_factor = device_scale_factor;
158 layer->draw_properties().page_scale_factor = page_scale_factor; 158 layer->draw_properties().page_scale_factor = page_scale_factor;
159 layer->draw_properties().maximum_animation_contents_scale = 159 layer->draw_properties().maximum_animation_contents_scale =
160 maximum_animation_contents_scale; 160 maximum_animation_contents_scale;
161 layer->draw_properties().screen_space_transform_is_animating = 161 layer->draw_properties().screen_space_transform_is_animating =
162 animating_transform_to_screen; 162 animating_transform_to_screen;
163 layer->UpdateTiles(Occlusion()); 163 layer->UpdateTiles(NULL);
164 } 164 }
165 static void VerifyAllTilesExistAndHavePile( 165 static void VerifyAllTilesExistAndHavePile(
166 const PictureLayerTiling* tiling, 166 const PictureLayerTiling* tiling,
167 PicturePileImpl* pile) { 167 PicturePileImpl* pile) {
168 for (PictureLayerTiling::CoverageIterator iter( 168 for (PictureLayerTiling::CoverageIterator iter(
169 tiling, 169 tiling,
170 tiling->contents_scale(), 170 tiling->contents_scale(),
171 gfx::Rect(tiling->tiling_size())); 171 gfx::Rect(tiling->tiling_size()));
172 iter; 172 iter;
173 ++iter) { 173 ++iter) {
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 gfx::Transform transform, transform_for_tile_priority; 341 gfx::Transform transform, transform_for_tile_priority;
342 342
343 host_impl_.SetExternalDrawConstraints(transform, 343 host_impl_.SetExternalDrawConstraints(transform,
344 viewport, 344 viewport,
345 viewport, 345 viewport,
346 viewport_rect_for_tile_priority, 346 viewport_rect_for_tile_priority,
347 transform_for_tile_priority, 347 transform_for_tile_priority,
348 resourceless_software_draw); 348 resourceless_software_draw);
349 active_layer_->draw_properties().visible_content_rect = viewport; 349 active_layer_->draw_properties().visible_content_rect = viewport;
350 active_layer_->draw_properties().screen_space_transform = transform; 350 active_layer_->draw_properties().screen_space_transform = transform;
351 active_layer_->UpdateTiles(Occlusion()); 351 active_layer_->UpdateTiles(NULL);
352 352
353 gfx::Rect viewport_rect_for_tile_priority_in_view_space = 353 gfx::Rect viewport_rect_for_tile_priority_in_view_space =
354 viewport_rect_for_tile_priority; 354 viewport_rect_for_tile_priority;
355 355
356 // Verify the viewport rect for tile priority is used in picture layer impl. 356 // Verify the viewport rect for tile priority is used in picture layer impl.
357 EXPECT_EQ(active_layer_->viewport_rect_for_tile_priority(), 357 EXPECT_EQ(active_layer_->viewport_rect_for_tile_priority(),
358 viewport_rect_for_tile_priority_in_view_space); 358 viewport_rect_for_tile_priority_in_view_space);
359 359
360 // Verify the viewport rect for tile priority is used in picture layer tiling. 360 // Verify the viewport rect for tile priority is used in picture layer tiling.
361 PictureLayerTilingSet* tilings = active_layer_->tilings(); 361 PictureLayerTilingSet* tilings = active_layer_->tilings();
(...skipping 17 matching lines...) Expand all
379 transform_for_tile_priority.Translate(100, 100); 379 transform_for_tile_priority.Translate(100, 100);
380 transform_for_tile_priority.Rotate(45); 380 transform_for_tile_priority.Rotate(45);
381 host_impl_.SetExternalDrawConstraints(transform, 381 host_impl_.SetExternalDrawConstraints(transform,
382 viewport, 382 viewport,
383 viewport, 383 viewport,
384 viewport_rect_for_tile_priority, 384 viewport_rect_for_tile_priority,
385 transform_for_tile_priority, 385 transform_for_tile_priority,
386 resourceless_software_draw); 386 resourceless_software_draw);
387 active_layer_->draw_properties().visible_content_rect = viewport; 387 active_layer_->draw_properties().visible_content_rect = viewport;
388 active_layer_->draw_properties().screen_space_transform = transform; 388 active_layer_->draw_properties().screen_space_transform = transform;
389 active_layer_->UpdateTiles(Occlusion()); 389 active_layer_->UpdateTiles(NULL);
390 390
391 gfx::Transform screen_to_view(gfx::Transform::kSkipInitialization); 391 gfx::Transform screen_to_view(gfx::Transform::kSkipInitialization);
392 bool success = transform_for_tile_priority.GetInverse(&screen_to_view); 392 bool success = transform_for_tile_priority.GetInverse(&screen_to_view);
393 EXPECT_TRUE(success); 393 EXPECT_TRUE(success);
394 394
395 viewport_rect_for_tile_priority_in_view_space = 395 viewport_rect_for_tile_priority_in_view_space =
396 gfx::ToEnclosingRect(MathUtil::ProjectClippedRect( 396 gfx::ToEnclosingRect(MathUtil::ProjectClippedRect(
397 screen_to_view, viewport_rect_for_tile_priority)); 397 screen_to_view, viewport_rect_for_tile_priority));
398 398
399 // Verify the viewport rect for tile priority is used in PictureLayerImpl. 399 // Verify the viewport rect for tile priority is used in PictureLayerImpl.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 gfx::Rect viewport = gfx::Rect(layer_bounds); 440 gfx::Rect viewport = gfx::Rect(layer_bounds);
441 gfx::Transform transform; 441 gfx::Transform transform;
442 host_impl_.SetExternalDrawConstraints(transform, 442 host_impl_.SetExternalDrawConstraints(transform,
443 viewport, 443 viewport,
444 viewport, 444 viewport,
445 viewport, 445 viewport,
446 transform, 446 transform,
447 resourceless_software_draw); 447 resourceless_software_draw);
448 active_layer_->draw_properties().visible_content_rect = viewport; 448 active_layer_->draw_properties().visible_content_rect = viewport;
449 active_layer_->draw_properties().screen_space_transform = transform; 449 active_layer_->draw_properties().screen_space_transform = transform;
450 active_layer_->UpdateTiles(Occlusion()); 450 active_layer_->UpdateTiles(NULL);
451 451
452 gfx::Rect visible_rect_for_tile_priority = 452 gfx::Rect visible_rect_for_tile_priority =
453 active_layer_->visible_rect_for_tile_priority(); 453 active_layer_->visible_rect_for_tile_priority();
454 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); 454 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty());
455 gfx::Rect viewport_rect_for_tile_priority = 455 gfx::Rect viewport_rect_for_tile_priority =
456 active_layer_->viewport_rect_for_tile_priority(); 456 active_layer_->viewport_rect_for_tile_priority();
457 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); 457 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty());
458 gfx::Transform screen_space_transform_for_tile_priority = 458 gfx::Transform screen_space_transform_for_tile_priority =
459 active_layer_->screen_space_transform_for_tile_priority(); 459 active_layer_->screen_space_transform_for_tile_priority();
460 460
461 // PictureLayerImpl does not make a special case for 461 // PictureLayerImpl does not make a special case for
462 // resource_less_software_draw, so the tile viewport and matrix should be 462 // resource_less_software_draw, so the tile viewport and matrix should be
463 // respected. 463 // respected.
464 time_ticks += base::TimeDelta::FromMilliseconds(200); 464 time_ticks += base::TimeDelta::FromMilliseconds(200);
465 host_impl_.SetCurrentBeginFrameArgs( 465 host_impl_.SetCurrentBeginFrameArgs(
466 CreateBeginFrameArgsForTesting(time_ticks)); 466 CreateBeginFrameArgsForTesting(time_ticks));
467 resourceless_software_draw = true; 467 resourceless_software_draw = true;
468 viewport = gfx::ScaleToEnclosingRect(viewport, 2); 468 viewport = gfx::ScaleToEnclosingRect(viewport, 2);
469 transform.Translate(1.f, 1.f); 469 transform.Translate(1.f, 1.f);
470 active_layer_->draw_properties().visible_content_rect = viewport; 470 active_layer_->draw_properties().visible_content_rect = viewport;
471 active_layer_->draw_properties().screen_space_transform = transform; 471 active_layer_->draw_properties().screen_space_transform = transform;
472 host_impl_.SetExternalDrawConstraints(transform, 472 host_impl_.SetExternalDrawConstraints(transform,
473 viewport, 473 viewport,
474 viewport, 474 viewport,
475 viewport, 475 viewport,
476 transform, 476 transform,
477 resourceless_software_draw); 477 resourceless_software_draw);
478 active_layer_->UpdateTiles(Occlusion()); 478 active_layer_->UpdateTiles(NULL);
479 479
480 visible_rect_for_tile_priority = 480 visible_rect_for_tile_priority =
481 gfx::ScaleToEnclosingRect(visible_rect_for_tile_priority, 2); 481 gfx::ScaleToEnclosingRect(visible_rect_for_tile_priority, 2);
482 viewport_rect_for_tile_priority = 482 viewport_rect_for_tile_priority =
483 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority, 2); 483 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority, 2);
484 screen_space_transform_for_tile_priority = transform; 484 screen_space_transform_for_tile_priority = transform;
485 EXPECT_RECT_EQ(visible_rect_for_tile_priority, 485 EXPECT_RECT_EQ(visible_rect_for_tile_priority,
486 active_layer_->visible_rect_for_tile_priority()); 486 active_layer_->visible_rect_for_tile_priority());
487 EXPECT_RECT_EQ(viewport_rect_for_tile_priority, 487 EXPECT_RECT_EQ(viewport_rect_for_tile_priority,
488 active_layer_->viewport_rect_for_tile_priority()); 488 active_layer_->viewport_rect_for_tile_priority());
(...skipping 1012 matching lines...) Expand 10 before | Expand all | Expand 10 after
1501 transform_for_tile_priority, 1501 transform_for_tile_priority,
1502 resourceless_software_draw); 1502 resourceless_software_draw);
1503 host_impl_.pending_tree()->UpdateDrawProperties(); 1503 host_impl_.pending_tree()->UpdateDrawProperties();
1504 1504
1505 // Set visible content rect that is different from 1505 // Set visible content rect that is different from
1506 // external_viewport_for_tile_priority. 1506 // external_viewport_for_tile_priority.
1507 pending_layer_->draw_properties().visible_content_rect = visible_content_rect; 1507 pending_layer_->draw_properties().visible_content_rect = visible_content_rect;
1508 time_ticks += base::TimeDelta::FromMilliseconds(200); 1508 time_ticks += base::TimeDelta::FromMilliseconds(200);
1509 host_impl_.SetCurrentBeginFrameArgs( 1509 host_impl_.SetCurrentBeginFrameArgs(
1510 CreateBeginFrameArgsForTesting(time_ticks)); 1510 CreateBeginFrameArgsForTesting(time_ticks));
1511 pending_layer_->UpdateTiles(Occlusion()); 1511 pending_layer_->UpdateTiles(NULL);
1512 1512
1513 pending_layer_->MarkVisibleResourcesAsRequired(); 1513 pending_layer_->MarkVisibleResourcesAsRequired();
1514 1514
1515 // Intersect the two rects. Any tile outside should not be required for 1515 // Intersect the two rects. Any tile outside should not be required for
1516 // activation. 1516 // activation.
1517 gfx::Rect viewport_for_tile_priority = 1517 gfx::Rect viewport_for_tile_priority =
1518 pending_layer_->GetViewportForTilePriorityInContentSpace(); 1518 pending_layer_->GetViewportForTilePriorityInContentSpace();
1519 viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect()); 1519 viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect());
1520 1520
1521 int num_inside = 0; 1521 int num_inside = 0;
(...skipping 1596 matching lines...) Expand 10 before | Expand all | Expand 10 after
3118 gfx::Rect viewport = gfx::Rect(layer_bounds); 3118 gfx::Rect viewport = gfx::Rect(layer_bounds);
3119 gfx::Transform transform; 3119 gfx::Transform transform;
3120 host_impl_.SetExternalDrawConstraints(transform, 3120 host_impl_.SetExternalDrawConstraints(transform,
3121 viewport, 3121 viewport,
3122 viewport, 3122 viewport,
3123 viewport, 3123 viewport,
3124 transform, 3124 transform,
3125 resourceless_software_draw); 3125 resourceless_software_draw);
3126 active_layer_->draw_properties().visible_content_rect = viewport; 3126 active_layer_->draw_properties().visible_content_rect = viewport;
3127 active_layer_->draw_properties().screen_space_transform = transform; 3127 active_layer_->draw_properties().screen_space_transform = transform;
3128 active_layer_->UpdateTiles(Occlusion()); 3128 active_layer_->UpdateTiles(NULL);
3129 3129
3130 gfx::Rect visible_rect_for_tile_priority = 3130 gfx::Rect visible_rect_for_tile_priority =
3131 active_layer_->visible_rect_for_tile_priority(); 3131 active_layer_->visible_rect_for_tile_priority();
3132 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); 3132 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty());
3133 gfx::Rect viewport_rect_for_tile_priority = 3133 gfx::Rect viewport_rect_for_tile_priority =
3134 active_layer_->viewport_rect_for_tile_priority(); 3134 active_layer_->viewport_rect_for_tile_priority();
3135 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); 3135 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty());
3136 gfx::Transform screen_space_transform_for_tile_priority = 3136 gfx::Transform screen_space_transform_for_tile_priority =
3137 active_layer_->screen_space_transform_for_tile_priority(); 3137 active_layer_->screen_space_transform_for_tile_priority();
3138 3138
3139 // PictureLayerImpl does not make a special case for 3139 // PictureLayerImpl does not make a special case for
3140 // resource_less_software_draw, so the tile viewport and matrix should be 3140 // resource_less_software_draw, so the tile viewport and matrix should be
3141 // respected. 3141 // respected.
3142 time_ticks += base::TimeDelta::FromMilliseconds(200); 3142 time_ticks += base::TimeDelta::FromMilliseconds(200);
3143 host_impl_.SetCurrentBeginFrameArgs( 3143 host_impl_.SetCurrentBeginFrameArgs(
3144 CreateBeginFrameArgsForTesting(time_ticks)); 3144 CreateBeginFrameArgsForTesting(time_ticks));
3145 resourceless_software_draw = true; 3145 resourceless_software_draw = true;
3146 viewport = gfx::ScaleToEnclosingRect(viewport, 2); 3146 viewport = gfx::ScaleToEnclosingRect(viewport, 2);
3147 transform.Translate(1.f, 1.f); 3147 transform.Translate(1.f, 1.f);
3148 active_layer_->draw_properties().visible_content_rect = viewport; 3148 active_layer_->draw_properties().visible_content_rect = viewport;
3149 active_layer_->draw_properties().screen_space_transform = transform; 3149 active_layer_->draw_properties().screen_space_transform = transform;
3150 host_impl_.SetExternalDrawConstraints(transform, 3150 host_impl_.SetExternalDrawConstraints(transform,
3151 viewport, 3151 viewport,
3152 viewport, 3152 viewport,
3153 viewport, 3153 viewport,
3154 transform, 3154 transform,
3155 resourceless_software_draw); 3155 resourceless_software_draw);
3156 active_layer_->UpdateTiles(Occlusion()); 3156 active_layer_->UpdateTiles(NULL);
3157 3157
3158 visible_rect_for_tile_priority = 3158 visible_rect_for_tile_priority =
3159 gfx::ScaleToEnclosingRect(visible_rect_for_tile_priority, 2); 3159 gfx::ScaleToEnclosingRect(visible_rect_for_tile_priority, 2);
3160 viewport_rect_for_tile_priority = 3160 viewport_rect_for_tile_priority =
3161 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority, 2); 3161 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority, 2);
3162 screen_space_transform_for_tile_priority = transform; 3162 screen_space_transform_for_tile_priority = transform;
3163 3163
3164 EXPECT_RECT_EQ(visible_rect_for_tile_priority, 3164 EXPECT_RECT_EQ(visible_rect_for_tile_priority,
3165 active_layer_->visible_rect_for_tile_priority()); 3165 active_layer_->visible_rect_for_tile_priority());
3166 EXPECT_RECT_EQ(viewport_rect_for_tile_priority, 3166 EXPECT_RECT_EQ(viewport_rect_for_tile_priority,
(...skipping 1006 matching lines...) Expand 10 before | Expand all | Expand 10 after
4173 ActivateTree(); 4173 ActivateTree();
4174 EXPECT_TRUE(active_layer_->GetRecycledTwinLayer()); 4174 EXPECT_TRUE(active_layer_->GetRecycledTwinLayer());
4175 EXPECT_EQ(old_pending_layer_, active_layer_->GetRecycledTwinLayer()); 4175 EXPECT_EQ(old_pending_layer_, active_layer_->GetRecycledTwinLayer());
4176 4176
4177 host_impl_.ResetRecycleTreeForTesting(); 4177 host_impl_.ResetRecycleTreeForTesting();
4178 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); 4178 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer());
4179 } 4179 }
4180 4180
4181 } // namespace 4181 } // namespace
4182 } // namespace cc 4182 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/resources/picture_layer_tiling.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698