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

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

Issue 1076313006: Animation start scale should be considered for the raster scale (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing and Added more tests Created 5 years, 7 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/test/animation_test_common.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 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 pending_tree->SetRootLayer(pending_root.Pass()); 230 pending_tree->SetRootLayer(pending_root.Pass());
231 231
232 pending_layer_ = static_cast<FakePictureLayerImpl*>( 232 pending_layer_ = static_cast<FakePictureLayerImpl*>(
233 host_impl_.pending_tree()->LayerById(id_)); 233 host_impl_.pending_tree()->LayerById(id_));
234 234
235 // Add tilings/tiles for the layer. 235 // Add tilings/tiles for the layer.
236 bool update_lcd_text = false; 236 bool update_lcd_text = false;
237 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text); 237 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text);
238 } 238 }
239 239
240 void SetupDrawPropertiesAndUpdateTiles(FakePictureLayerImpl* layer, 240 void SetupDrawPropertiesAndUpdateTiles(
241 float ideal_contents_scale, 241 FakePictureLayerImpl* layer,
242 float device_scale_factor, 242 float ideal_contents_scale,
243 float page_scale_factor, 243 float device_scale_factor,
244 float maximum_animation_contents_scale, 244 float page_scale_factor,
245 bool animating_transform_to_screen) { 245 float maximum_animation_contents_scale,
246 float starting_animation_contents_scale,
247 bool animating_transform_to_screen) {
246 layer->draw_properties().ideal_contents_scale = ideal_contents_scale; 248 layer->draw_properties().ideal_contents_scale = ideal_contents_scale;
247 layer->draw_properties().device_scale_factor = device_scale_factor; 249 layer->draw_properties().device_scale_factor = device_scale_factor;
248 layer->draw_properties().page_scale_factor = page_scale_factor; 250 layer->draw_properties().page_scale_factor = page_scale_factor;
249 layer->draw_properties().maximum_animation_contents_scale = 251 layer->draw_properties().maximum_animation_contents_scale =
250 maximum_animation_contents_scale; 252 maximum_animation_contents_scale;
253 layer->draw_properties().starting_animation_contents_scale =
254 starting_animation_contents_scale;
251 layer->draw_properties().screen_space_transform_is_animating = 255 layer->draw_properties().screen_space_transform_is_animating =
252 animating_transform_to_screen; 256 animating_transform_to_screen;
253 bool resourceless_software_draw = false; 257 bool resourceless_software_draw = false;
254 layer->UpdateTiles(resourceless_software_draw); 258 layer->UpdateTiles(resourceless_software_draw);
255 } 259 }
256 static void VerifyAllTilesExistAndHavePile( 260 static void VerifyAllTilesExistAndHavePile(
257 const PictureLayerTiling* tiling, 261 const PictureLayerTiling* tiling,
258 PicturePileImpl* pile) { 262 PicturePileImpl* pile) {
259 for (PictureLayerTiling::CoverageIterator iter( 263 for (PictureLayerTiling::CoverageIterator iter(
260 tiling, 264 tiling,
261 tiling->contents_scale(), 265 tiling->contents_scale(),
262 gfx::Rect(tiling->tiling_size())); 266 gfx::Rect(tiling->tiling_size()));
263 iter; 267 iter;
264 ++iter) { 268 ++iter) {
265 EXPECT_TRUE(*iter); 269 EXPECT_TRUE(*iter);
266 EXPECT_EQ(pile, iter->raster_source()); 270 EXPECT_EQ(pile, iter->raster_source());
267 } 271 }
268 } 272 }
269 273
270 void SetContentsScaleOnBothLayers(float contents_scale, 274 void SetContentsScaleOnBothLayers(float contents_scale,
271 float device_scale_factor, 275 float device_scale_factor,
272 float page_scale_factor, 276 float page_scale_factor,
273 float maximum_animation_contents_scale, 277 float maximum_animation_contents_scale,
278 float starting_animation_contents_scale,
274 bool animating_transform) { 279 bool animating_transform) {
275 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 280 SetupDrawPropertiesAndUpdateTiles(
276 contents_scale, 281 pending_layer_, contents_scale, device_scale_factor, page_scale_factor,
277 device_scale_factor, 282 maximum_animation_contents_scale, starting_animation_contents_scale,
278 page_scale_factor, 283 animating_transform);
279 maximum_animation_contents_scale,
280 animating_transform);
281 284
282 SetupDrawPropertiesAndUpdateTiles(active_layer_, 285 SetupDrawPropertiesAndUpdateTiles(
283 contents_scale, 286 active_layer_, contents_scale, device_scale_factor, page_scale_factor,
284 device_scale_factor, 287 maximum_animation_contents_scale, starting_animation_contents_scale,
285 page_scale_factor, 288 animating_transform);
286 maximum_animation_contents_scale,
287 animating_transform);
288 } 289 }
289 290
290 void ResetTilingsAndRasterScales() { 291 void ResetTilingsAndRasterScales() {
291 if (pending_layer_) { 292 if (pending_layer_) {
292 pending_layer_->ReleaseResources(); 293 pending_layer_->ReleaseResources();
293 EXPECT_FALSE(pending_layer_->tilings()); 294 EXPECT_FALSE(pending_layer_->tilings());
294 pending_layer_->RecreateResources(); 295 pending_layer_->RecreateResources();
295 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); 296 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings());
296 } 297 }
297 298
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 gfx::Size tile_size(100, 100); 432 gfx::Size tile_size(100, 100);
432 gfx::Size layer_bounds(400, 400); 433 gfx::Size layer_bounds(400, 400);
433 434
434 scoped_refptr<FakePicturePileImpl> pending_pile = 435 scoped_refptr<FakePicturePileImpl> pending_pile =
435 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 436 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
436 scoped_refptr<FakePicturePileImpl> active_pile = 437 scoped_refptr<FakePicturePileImpl> active_pile =
437 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 438 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
438 439
439 SetupTreesWithInvalidation(pending_pile, active_pile, Region()); 440 SetupTreesWithInvalidation(pending_pile, active_pile, Region());
440 441
441 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); 442 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
443 false);
442 444
443 time_ticks += base::TimeDelta::FromMilliseconds(200); 445 time_ticks += base::TimeDelta::FromMilliseconds(200);
444 host_impl_.SetCurrentBeginFrameArgs( 446 host_impl_.SetCurrentBeginFrameArgs(
445 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); 447 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
446 448
447 // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the 449 // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the
448 // identify transform for tile priority. 450 // identify transform for tile priority.
449 bool resourceless_software_draw = false; 451 bool resourceless_software_draw = false;
450 gfx::Rect viewport = gfx::Rect(layer_bounds), 452 gfx::Rect viewport = gfx::Rect(layer_bounds),
451 viewport_rect_for_tile_priority = gfx::Rect(0, 0, 100, 100); 453 viewport_rect_for_tile_priority = gfx::Rect(0, 0, 100, 100);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 gfx::Size tile_size(100, 100); 529 gfx::Size tile_size(100, 100);
528 gfx::Size layer_bounds(400, 400); 530 gfx::Size layer_bounds(400, 400);
529 531
530 scoped_refptr<FakePicturePileImpl> pending_pile = 532 scoped_refptr<FakePicturePileImpl> pending_pile =
531 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 533 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
532 scoped_refptr<FakePicturePileImpl> active_pile = 534 scoped_refptr<FakePicturePileImpl> active_pile =
533 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 535 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
534 536
535 SetupTreesWithInvalidation(pending_pile, active_pile, Region()); 537 SetupTreesWithInvalidation(pending_pile, active_pile, Region());
536 538
537 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); 539 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
540 false);
538 541
539 // UpdateTiles with valid viewport. Should update tile viewport. 542 // UpdateTiles with valid viewport. Should update tile viewport.
540 // Note viewport is considered invalid if and only if in resourceless 543 // Note viewport is considered invalid if and only if in resourceless
541 // software draw. 544 // software draw.
542 bool resourceless_software_draw = false; 545 bool resourceless_software_draw = false;
543 gfx::Rect viewport = gfx::Rect(layer_bounds); 546 gfx::Rect viewport = gfx::Rect(layer_bounds);
544 gfx::Transform transform; 547 gfx::Transform transform;
545 host_impl_.SetExternalDrawConstraints(transform, 548 host_impl_.SetExternalDrawConstraints(transform,
546 viewport, 549 viewport,
547 viewport, 550 viewport,
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 gfx::Size tile_size(100, 100); 612 gfx::Size tile_size(100, 100);
610 gfx::Size layer_bounds(400, 400); 613 gfx::Size layer_bounds(400, 400);
611 614
612 scoped_refptr<FakePicturePileImpl> pending_pile = 615 scoped_refptr<FakePicturePileImpl> pending_pile =
613 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 616 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
614 scoped_refptr<FakePicturePileImpl> active_pile = 617 scoped_refptr<FakePicturePileImpl> active_pile =
615 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 618 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
616 619
617 SetupTreesWithInvalidation(pending_pile, active_pile, Region()); 620 SetupTreesWithInvalidation(pending_pile, active_pile, Region());
618 621
619 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); 622 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
623 false);
620 624
621 time_ticks += base::TimeDelta::FromMilliseconds(200); 625 time_ticks += base::TimeDelta::FromMilliseconds(200);
622 host_impl_.SetCurrentBeginFrameArgs( 626 host_impl_.SetCurrentBeginFrameArgs(
623 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); 627 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
624 628
625 bool resourceless_software_draw = false; 629 bool resourceless_software_draw = false;
626 gfx::Rect viewport = gfx::Rect(layer_bounds); 630 gfx::Rect viewport = gfx::Rect(layer_bounds);
627 gfx::Rect viewport_rect_for_tile_priority(0, 0, 100, 100); 631 gfx::Rect viewport_rect_for_tile_priority(0, 0, 100, 100);
628 gfx::Transform transform, transform_for_tile_priority; 632 gfx::Transform transform, transform_for_tile_priority;
629 633
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 active_layer_->ReleaseResources(); 773 active_layer_->ReleaseResources();
770 EXPECT_FALSE(active_layer_->tilings()); 774 EXPECT_FALSE(active_layer_->tilings());
771 active_layer_->RecreateResources(); 775 active_layer_->RecreateResources();
772 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); 776 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings());
773 777
774 SetupDrawPropertiesAndUpdateTiles(active_layer_, 778 SetupDrawPropertiesAndUpdateTiles(active_layer_,
775 6.f, // ideal contents scale 779 6.f, // ideal contents scale
776 3.f, // device scale 780 3.f, // device scale
777 2.f, // page scale 781 2.f, // page scale
778 1.f, // maximum animation scale 782 1.f, // maximum animation scale
783 0.f, // starting animation scale
779 false); 784 false);
780 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); 785 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
781 EXPECT_FLOAT_EQ(6.f, 786 EXPECT_FLOAT_EQ(6.f,
782 active_layer_->tilings()->tiling_at(0)->contents_scale()); 787 active_layer_->tilings()->tiling_at(0)->contents_scale());
783 EXPECT_FLOAT_EQ(6.f * low_res_factor, 788 EXPECT_FLOAT_EQ(6.f * low_res_factor,
784 active_layer_->tilings()->tiling_at(1)->contents_scale()); 789 active_layer_->tilings()->tiling_at(1)->contents_scale());
785 790
786 // If we change the page scale factor, then we should get new tilings. 791 // If we change the page scale factor, then we should get new tilings.
787 SetupDrawPropertiesAndUpdateTiles(active_layer_, 792 SetupDrawPropertiesAndUpdateTiles(active_layer_,
788 6.6f, // ideal contents scale 793 6.6f, // ideal contents scale
789 3.f, // device scale 794 3.f, // device scale
790 2.2f, // page scale 795 2.2f, // page scale
791 1.f, // maximum animation scale 796 1.f, // maximum animation scale
797 0.f, // starting animation scale
792 false); 798 false);
793 ASSERT_EQ(4u, active_layer_->tilings()->num_tilings()); 799 ASSERT_EQ(4u, active_layer_->tilings()->num_tilings());
794 EXPECT_FLOAT_EQ(6.6f, 800 EXPECT_FLOAT_EQ(6.6f,
795 active_layer_->tilings()->tiling_at(0)->contents_scale()); 801 active_layer_->tilings()->tiling_at(0)->contents_scale());
796 EXPECT_FLOAT_EQ(6.6f * low_res_factor, 802 EXPECT_FLOAT_EQ(6.6f * low_res_factor,
797 active_layer_->tilings()->tiling_at(2)->contents_scale()); 803 active_layer_->tilings()->tiling_at(2)->contents_scale());
798 804
799 // If we change the device scale factor, then we should get new tilings. 805 // If we change the device scale factor, then we should get new tilings.
800 SetupDrawPropertiesAndUpdateTiles(active_layer_, 806 SetupDrawPropertiesAndUpdateTiles(active_layer_,
801 7.26f, // ideal contents scale 807 7.26f, // ideal contents scale
802 3.3f, // device scale 808 3.3f, // device scale
803 2.2f, // page scale 809 2.2f, // page scale
804 1.f, // maximum animation scale 810 1.f, // maximum animation scale
811 0.f, // starting animation scale
805 false); 812 false);
806 ASSERT_EQ(6u, active_layer_->tilings()->num_tilings()); 813 ASSERT_EQ(6u, active_layer_->tilings()->num_tilings());
807 EXPECT_FLOAT_EQ(7.26f, 814 EXPECT_FLOAT_EQ(7.26f,
808 active_layer_->tilings()->tiling_at(0)->contents_scale()); 815 active_layer_->tilings()->tiling_at(0)->contents_scale());
809 EXPECT_FLOAT_EQ(7.26f * low_res_factor, 816 EXPECT_FLOAT_EQ(7.26f * low_res_factor,
810 active_layer_->tilings()->tiling_at(3)->contents_scale()); 817 active_layer_->tilings()->tiling_at(3)->contents_scale());
811 818
812 // If we change the device scale factor, but end up at the same total scale 819 // If we change the device scale factor, but end up at the same total scale
813 // factor somehow, then we don't get new tilings. 820 // factor somehow, then we don't get new tilings.
814 SetupDrawPropertiesAndUpdateTiles(active_layer_, 821 SetupDrawPropertiesAndUpdateTiles(active_layer_,
815 7.26f, // ideal contents scale 822 7.26f, // ideal contents scale
816 2.2f, // device scale 823 2.2f, // device scale
817 3.3f, // page scale 824 3.3f, // page scale
818 1.f, // maximum animation scale 825 1.f, // maximum animation scale
826 0.f, // starting animation scale
819 false); 827 false);
820 ASSERT_EQ(6u, active_layer_->tilings()->num_tilings()); 828 ASSERT_EQ(6u, active_layer_->tilings()->num_tilings());
821 EXPECT_FLOAT_EQ(7.26f, 829 EXPECT_FLOAT_EQ(7.26f,
822 active_layer_->tilings()->tiling_at(0)->contents_scale()); 830 active_layer_->tilings()->tiling_at(0)->contents_scale());
823 EXPECT_FLOAT_EQ(7.26f * low_res_factor, 831 EXPECT_FLOAT_EQ(7.26f * low_res_factor,
824 active_layer_->tilings()->tiling_at(3)->contents_scale()); 832 active_layer_->tilings()->tiling_at(3)->contents_scale());
825 } 833 }
826 834
827 TEST_F(PictureLayerImplTest, PendingLayerOnlyHasHighAndLowResTiling) { 835 TEST_F(PictureLayerImplTest, PendingLayerOnlyHasHighAndLowResTiling) {
828 gfx::Size tile_size(400, 400); 836 gfx::Size tile_size(400, 400);
(...skipping 12 matching lines...) Expand all
841 pending_layer_->ReleaseResources(); 849 pending_layer_->ReleaseResources();
842 EXPECT_FALSE(pending_layer_->tilings()); 850 EXPECT_FALSE(pending_layer_->tilings());
843 pending_layer_->RecreateResources(); 851 pending_layer_->RecreateResources();
844 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); 852 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings());
845 853
846 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 854 SetupDrawPropertiesAndUpdateTiles(pending_layer_,
847 6.f, // ideal contents scale 855 6.f, // ideal contents scale
848 3.f, // device scale 856 3.f, // device scale
849 2.f, // page scale 857 2.f, // page scale
850 1.f, // maximum animation scale 858 1.f, // maximum animation scale
859 0.f, // starting animation scale
851 false); 860 false);
852 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); 861 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
853 EXPECT_FLOAT_EQ(6.f, 862 EXPECT_FLOAT_EQ(6.f,
854 pending_layer_->tilings()->tiling_at(0)->contents_scale()); 863 pending_layer_->tilings()->tiling_at(0)->contents_scale());
855 EXPECT_FLOAT_EQ(6.f * low_res_factor, 864 EXPECT_FLOAT_EQ(6.f * low_res_factor,
856 pending_layer_->tilings()->tiling_at(1)->contents_scale()); 865 pending_layer_->tilings()->tiling_at(1)->contents_scale());
857 866
858 // If we change the page scale factor, then we should get new tilings. 867 // If we change the page scale factor, then we should get new tilings.
859 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 868 SetupDrawPropertiesAndUpdateTiles(pending_layer_,
860 6.6f, // ideal contents scale 869 6.6f, // ideal contents scale
861 3.f, // device scale 870 3.f, // device scale
862 2.2f, // page scale 871 2.2f, // page scale
863 1.f, // maximum animation scale 872 1.f, // maximum animation scale
873 0.f, // starting animation scale
864 false); 874 false);
865 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); 875 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
866 EXPECT_FLOAT_EQ(6.6f, 876 EXPECT_FLOAT_EQ(6.6f,
867 pending_layer_->tilings()->tiling_at(0)->contents_scale()); 877 pending_layer_->tilings()->tiling_at(0)->contents_scale());
868 EXPECT_FLOAT_EQ(6.6f * low_res_factor, 878 EXPECT_FLOAT_EQ(6.6f * low_res_factor,
869 pending_layer_->tilings()->tiling_at(1)->contents_scale()); 879 pending_layer_->tilings()->tiling_at(1)->contents_scale());
870 880
871 // If we change the device scale factor, then we should get new tilings. 881 // If we change the device scale factor, then we should get new tilings.
872 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 882 SetupDrawPropertiesAndUpdateTiles(pending_layer_,
873 7.26f, // ideal contents scale 883 7.26f, // ideal contents scale
874 3.3f, // device scale 884 3.3f, // device scale
875 2.2f, // page scale 885 2.2f, // page scale
876 1.f, // maximum animation scale 886 1.f, // maximum animation scale
887 0.f, // starting animation scale
877 false); 888 false);
878 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); 889 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
879 EXPECT_FLOAT_EQ(7.26f, 890 EXPECT_FLOAT_EQ(7.26f,
880 pending_layer_->tilings()->tiling_at(0)->contents_scale()); 891 pending_layer_->tilings()->tiling_at(0)->contents_scale());
881 EXPECT_FLOAT_EQ(7.26f * low_res_factor, 892 EXPECT_FLOAT_EQ(7.26f * low_res_factor,
882 pending_layer_->tilings()->tiling_at(1)->contents_scale()); 893 pending_layer_->tilings()->tiling_at(1)->contents_scale());
883 894
884 // If we change the device scale factor, but end up at the same total scale 895 // If we change the device scale factor, but end up at the same total scale
885 // factor somehow, then we don't get new tilings. 896 // factor somehow, then we don't get new tilings.
886 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 897 SetupDrawPropertiesAndUpdateTiles(pending_layer_,
887 7.26f, // ideal contents scale 898 7.26f, // ideal contents scale
888 2.2f, // device scale 899 2.2f, // device scale
889 3.3f, // page scale 900 3.3f, // page scale
890 1.f, // maximum animation scale 901 1.f, // maximum animation scale
902 0.f, // starting animation scale
891 false); 903 false);
892 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); 904 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
893 EXPECT_FLOAT_EQ(7.26f, 905 EXPECT_FLOAT_EQ(7.26f,
894 pending_layer_->tilings()->tiling_at(0)->contents_scale()); 906 pending_layer_->tilings()->tiling_at(0)->contents_scale());
895 EXPECT_FLOAT_EQ(7.26f * low_res_factor, 907 EXPECT_FLOAT_EQ(7.26f * low_res_factor,
896 pending_layer_->tilings()->tiling_at(1)->contents_scale()); 908 pending_layer_->tilings()->tiling_at(1)->contents_scale());
897 } 909 }
898 910
899 TEST_F(PictureLayerImplTest, CreateTilingsEvenIfTwinHasNone) { 911 TEST_F(PictureLayerImplTest, CreateTilingsEvenIfTwinHasNone) {
900 // This test makes sure that if a layer can have tilings, then a commit makes 912 // This test makes sure that if a layer can have tilings, then a commit makes
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
932 944
933 // Set up the high and low res tilings before pinch zoom. 945 // Set up the high and low res tilings before pinch zoom.
934 scoped_refptr<FakePicturePileImpl> pending_pile = 946 scoped_refptr<FakePicturePileImpl> pending_pile =
935 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 947 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
936 scoped_refptr<FakePicturePileImpl> active_pile = 948 scoped_refptr<FakePicturePileImpl> active_pile =
937 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 949 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
938 950
939 SetupTrees(pending_pile, active_pile); 951 SetupTrees(pending_pile, active_pile);
940 ResetTilingsAndRasterScales(); 952 ResetTilingsAndRasterScales();
941 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); 953 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings());
942 SetContentsScaleOnBothLayers(32.0f, 1.0f, 32.0f, 1.0f, false); 954 SetContentsScaleOnBothLayers(32.0f, 1.0f, 32.0f, 1.0f, 0.f, false);
943 EXPECT_EQ(32.f, active_layer_->HighResTiling()->contents_scale()); 955 EXPECT_EQ(32.f, active_layer_->HighResTiling()->contents_scale());
944 host_impl_.PinchGestureBegin(); 956 host_impl_.PinchGestureBegin();
945 SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, 1.0f, false); 957 SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, 1.0f, 0.f, false);
946 SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, 1.0f, false); 958 SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, 1.0f, 0.f, false);
947 EXPECT_EQ(active_layer_->tilings()->NumHighResTilings(), 1); 959 EXPECT_EQ(active_layer_->tilings()->NumHighResTilings(), 1);
948 } 960 }
949 961
950 TEST_F(PictureLayerImplTest, PinchGestureTilings) { 962 TEST_F(PictureLayerImplTest, PinchGestureTilings) {
951 gfx::Size tile_size(400, 400); 963 gfx::Size tile_size(400, 400);
952 gfx::Size layer_bounds(1300, 1900); 964 gfx::Size layer_bounds(1300, 1900);
953 965
954 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; 966 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
955 967
956 scoped_refptr<FakePicturePileImpl> pending_pile = 968 scoped_refptr<FakePicturePileImpl> pending_pile =
957 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 969 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
958 scoped_refptr<FakePicturePileImpl> active_pile = 970 scoped_refptr<FakePicturePileImpl> active_pile =
959 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 971 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
960 972
961 // Set up the high and low res tilings before pinch zoom. 973 // Set up the high and low res tilings before pinch zoom.
962 SetupTrees(pending_pile, active_pile); 974 SetupTrees(pending_pile, active_pile);
963 ResetTilingsAndRasterScales(); 975 ResetTilingsAndRasterScales();
964 976
965 SetContentsScaleOnBothLayers(2.f, 1.0f, 2.f, 1.0f, false); 977 SetContentsScaleOnBothLayers(2.f, 1.0f, 2.f, 1.0f, 0.f, false);
966 EXPECT_BOTH_EQ(num_tilings(), 2u); 978 EXPECT_BOTH_EQ(num_tilings(), 2u);
967 EXPECT_BOTH_EQ(tilings()->tiling_at(0)->contents_scale(), 2.f); 979 EXPECT_BOTH_EQ(tilings()->tiling_at(0)->contents_scale(), 2.f);
968 EXPECT_BOTH_EQ(tilings()->tiling_at(1)->contents_scale(), 980 EXPECT_BOTH_EQ(tilings()->tiling_at(1)->contents_scale(),
969 2.f * low_res_factor); 981 2.f * low_res_factor);
970 982
971 // Ensure UpdateTiles won't remove any tilings. 983 // Ensure UpdateTiles won't remove any tilings.
972 active_layer_->MarkAllTilingsUsed(); 984 active_layer_->MarkAllTilingsUsed();
973 985
974 // Start a pinch gesture. 986 // Start a pinch gesture.
975 host_impl_.PinchGestureBegin(); 987 host_impl_.PinchGestureBegin();
976 988
977 // Zoom out by a small amount. We should create a tiling at half 989 // Zoom out by a small amount. We should create a tiling at half
978 // the scale (2/kMaxScaleRatioDuringPinch). 990 // the scale (2/kMaxScaleRatioDuringPinch).
979 SetContentsScaleOnBothLayers(1.8f, 1.0f, 1.8f, 1.0f, false); 991 SetContentsScaleOnBothLayers(1.8f, 1.0f, 1.8f, 1.0f, 0.f, false);
980 EXPECT_EQ(3u, active_layer_->tilings()->num_tilings()); 992 EXPECT_EQ(3u, active_layer_->tilings()->num_tilings());
981 EXPECT_FLOAT_EQ(2.0f, 993 EXPECT_FLOAT_EQ(2.0f,
982 active_layer_->tilings()->tiling_at(0)->contents_scale()); 994 active_layer_->tilings()->tiling_at(0)->contents_scale());
983 EXPECT_FLOAT_EQ(1.0f, 995 EXPECT_FLOAT_EQ(1.0f,
984 active_layer_->tilings()->tiling_at(1)->contents_scale()); 996 active_layer_->tilings()->tiling_at(1)->contents_scale());
985 EXPECT_FLOAT_EQ(2.0f * low_res_factor, 997 EXPECT_FLOAT_EQ(2.0f * low_res_factor,
986 active_layer_->tilings()->tiling_at(2)->contents_scale()); 998 active_layer_->tilings()->tiling_at(2)->contents_scale());
987 999
988 // Ensure UpdateTiles won't remove any tilings. 1000 // Ensure UpdateTiles won't remove any tilings.
989 active_layer_->MarkAllTilingsUsed(); 1001 active_layer_->MarkAllTilingsUsed();
990 1002
991 // Zoom out further, close to our low-res scale factor. We should 1003 // Zoom out further, close to our low-res scale factor. We should
992 // use that tiling as high-res, and not create a new tiling. 1004 // use that tiling as high-res, and not create a new tiling.
993 SetContentsScaleOnBothLayers(low_res_factor * 2.1f, 1.0f, 1005 SetContentsScaleOnBothLayers(low_res_factor * 2.1f, 1.0f,
994 low_res_factor * 2.1f, 1.0f, false); 1006 low_res_factor * 2.1f, 1.0f, 0.f, false);
995 EXPECT_EQ(3u, active_layer_->tilings()->num_tilings()); 1007 EXPECT_EQ(3u, active_layer_->tilings()->num_tilings());
996 1008
997 // Zoom in a lot now. Since we increase by increments of 1009 // Zoom in a lot now. Since we increase by increments of
998 // kMaxScaleRatioDuringPinch, this will create a new tiling at 4.0. 1010 // kMaxScaleRatioDuringPinch, this will create a new tiling at 4.0.
999 SetContentsScaleOnBothLayers(3.8f, 1.0f, 3.8f, 1.f, false); 1011 SetContentsScaleOnBothLayers(3.8f, 1.0f, 3.8f, 1.f, 0.f, false);
1000 EXPECT_EQ(4u, active_layer_->tilings()->num_tilings()); 1012 EXPECT_EQ(4u, active_layer_->tilings()->num_tilings());
1001 EXPECT_FLOAT_EQ(4.0f, 1013 EXPECT_FLOAT_EQ(4.0f,
1002 active_layer_->tilings()->tiling_at(0)->contents_scale()); 1014 active_layer_->tilings()->tiling_at(0)->contents_scale());
1003 } 1015 }
1004 1016
1005 TEST_F(PictureLayerImplTest, SnappedTilingDuringZoom) { 1017 TEST_F(PictureLayerImplTest, SnappedTilingDuringZoom) {
1006 gfx::Size tile_size(300, 300); 1018 gfx::Size tile_size(300, 300);
1007 gfx::Size layer_bounds(2600, 3800); 1019 gfx::Size layer_bounds(2600, 3800);
1008 1020
1009 scoped_refptr<FakePicturePileImpl> pending_pile = 1021 scoped_refptr<FakePicturePileImpl> pending_pile =
1010 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1022 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1011 scoped_refptr<FakePicturePileImpl> active_pile = 1023 scoped_refptr<FakePicturePileImpl> active_pile =
1012 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1024 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1013 1025
1014 SetupTrees(pending_pile, active_pile); 1026 SetupTrees(pending_pile, active_pile);
1015 1027
1016 ResetTilingsAndRasterScales(); 1028 ResetTilingsAndRasterScales();
1017 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); 1029 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings());
1018 1030
1019 // Set up the high and low res tilings before pinch zoom. 1031 // Set up the high and low res tilings before pinch zoom.
1020 SetContentsScaleOnBothLayers(0.24f, 1.0f, 0.24f, 1.0f, false); 1032 SetContentsScaleOnBothLayers(0.24f, 1.0f, 0.24f, 1.0f, 0.f, false);
1021 EXPECT_EQ(2u, active_layer_->tilings()->num_tilings()); 1033 EXPECT_EQ(2u, active_layer_->tilings()->num_tilings());
1022 EXPECT_FLOAT_EQ(0.24f, 1034 EXPECT_FLOAT_EQ(0.24f,
1023 active_layer_->tilings()->tiling_at(0)->contents_scale()); 1035 active_layer_->tilings()->tiling_at(0)->contents_scale());
1024 EXPECT_FLOAT_EQ(0.0625f, 1036 EXPECT_FLOAT_EQ(0.0625f,
1025 active_layer_->tilings()->tiling_at(1)->contents_scale()); 1037 active_layer_->tilings()->tiling_at(1)->contents_scale());
1026 1038
1027 // Ensure UpdateTiles won't remove any tilings. 1039 // Ensure UpdateTiles won't remove any tilings.
1028 active_layer_->MarkAllTilingsUsed(); 1040 active_layer_->MarkAllTilingsUsed();
1029 1041
1030 // Start a pinch gesture. 1042 // Start a pinch gesture.
1031 host_impl_.PinchGestureBegin(); 1043 host_impl_.PinchGestureBegin();
1032 1044
1033 // Zoom out by a small amount. We should create a tiling at half 1045 // Zoom out by a small amount. We should create a tiling at half
1034 // the scale (1/kMaxScaleRatioDuringPinch). 1046 // the scale (1/kMaxScaleRatioDuringPinch).
1035 SetContentsScaleOnBothLayers(0.2f, 1.0f, 0.2f, 1.0f, false); 1047 SetContentsScaleOnBothLayers(0.2f, 1.0f, 0.2f, 1.0f, 0.f, false);
1036 EXPECT_EQ(3u, active_layer_->tilings()->num_tilings()); 1048 EXPECT_EQ(3u, active_layer_->tilings()->num_tilings());
1037 EXPECT_FLOAT_EQ(0.24f, 1049 EXPECT_FLOAT_EQ(0.24f,
1038 active_layer_->tilings()->tiling_at(0)->contents_scale()); 1050 active_layer_->tilings()->tiling_at(0)->contents_scale());
1039 EXPECT_FLOAT_EQ(0.12f, 1051 EXPECT_FLOAT_EQ(0.12f,
1040 active_layer_->tilings()->tiling_at(1)->contents_scale()); 1052 active_layer_->tilings()->tiling_at(1)->contents_scale());
1041 EXPECT_FLOAT_EQ(0.0625, 1053 EXPECT_FLOAT_EQ(0.0625,
1042 active_layer_->tilings()->tiling_at(2)->contents_scale()); 1054 active_layer_->tilings()->tiling_at(2)->contents_scale());
1043 1055
1044 // Ensure UpdateTiles won't remove any tilings. 1056 // Ensure UpdateTiles won't remove any tilings.
1045 active_layer_->MarkAllTilingsUsed(); 1057 active_layer_->MarkAllTilingsUsed();
1046 1058
1047 // Zoom out further, close to our low-res scale factor. We should 1059 // Zoom out further, close to our low-res scale factor. We should
1048 // use that tiling as high-res, and not create a new tiling. 1060 // use that tiling as high-res, and not create a new tiling.
1049 SetContentsScaleOnBothLayers(0.1f, 1.0f, 0.1f, 1.0f, false); 1061 SetContentsScaleOnBothLayers(0.1f, 1.0f, 0.1f, 1.0f, 0.f, false);
1050 EXPECT_EQ(3u, active_layer_->tilings()->num_tilings()); 1062 EXPECT_EQ(3u, active_layer_->tilings()->num_tilings());
1051 1063
1052 // Zoom in. 0.25(desired_scale) should be snapped to 0.24 during zoom-in 1064 // Zoom in. 0.25(desired_scale) should be snapped to 0.24 during zoom-in
1053 // because 0.25(desired_scale) is within the ratio(1.2). 1065 // because 0.25(desired_scale) is within the ratio(1.2).
1054 SetContentsScaleOnBothLayers(0.25f, 1.0f, 0.25f, 1.0f, false); 1066 SetContentsScaleOnBothLayers(0.25f, 1.0f, 0.25f, 1.0f, 0.f, false);
1055 EXPECT_EQ(3u, active_layer_->tilings()->num_tilings()); 1067 EXPECT_EQ(3u, active_layer_->tilings()->num_tilings());
1056 1068
1057 // Zoom in a lot. Since we move in factors of two, we should get a scale that 1069 // Zoom in a lot. Since we move in factors of two, we should get a scale that
1058 // is a power of 2 times 0.24. 1070 // is a power of 2 times 0.24.
1059 SetContentsScaleOnBothLayers(1.f, 1.0f, 1.f, 1.0f, false); 1071 SetContentsScaleOnBothLayers(1.f, 1.0f, 1.f, 1.0f, 0.f, false);
1060 EXPECT_EQ(4u, active_layer_->tilings()->num_tilings()); 1072 EXPECT_EQ(4u, active_layer_->tilings()->num_tilings());
1061 EXPECT_FLOAT_EQ(1.92f, 1073 EXPECT_FLOAT_EQ(1.92f,
1062 active_layer_->tilings()->tiling_at(0)->contents_scale()); 1074 active_layer_->tilings()->tiling_at(0)->contents_scale());
1063 } 1075 }
1064 1076
1065 TEST_F(PictureLayerImplTest, CleanUpTilings) { 1077 TEST_F(PictureLayerImplTest, CleanUpTilings) {
1066 gfx::Size tile_size(400, 400); 1078 gfx::Size tile_size(400, 400);
1067 gfx::Size layer_bounds(1300, 1900); 1079 gfx::Size layer_bounds(1300, 1900);
1068 1080
1069 scoped_refptr<FakePicturePileImpl> pending_pile = 1081 scoped_refptr<FakePicturePileImpl> pending_pile =
(...skipping 21 matching lines...) Expand all
1091 // We only have ideal tilings, so they aren't removed. 1103 // We only have ideal tilings, so they aren't removed.
1092 used_tilings.clear(); 1104 used_tilings.clear();
1093 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 1105 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
1094 EXPECT_EQ(2u, active_layer_->tilings()->num_tilings()); 1106 EXPECT_EQ(2u, active_layer_->tilings()->num_tilings());
1095 1107
1096 host_impl_.PinchGestureBegin(); 1108 host_impl_.PinchGestureBegin();
1097 1109
1098 // Changing the ideal but not creating new tilings. 1110 // Changing the ideal but not creating new tilings.
1099 scale = 1.5f; 1111 scale = 1.5f;
1100 page_scale = 1.5f; 1112 page_scale = 1.5f;
1101 SetContentsScaleOnBothLayers(scale, 1.f, page_scale, 1.f, false); 1113 SetContentsScaleOnBothLayers(scale, 1.f, page_scale, 1.f, 0.f, false);
1102 EXPECT_EQ(2u, active_layer_->tilings()->num_tilings()); 1114 EXPECT_EQ(2u, active_layer_->tilings()->num_tilings());
1103 1115
1104 // The tilings are still our target scale, so they aren't removed. 1116 // The tilings are still our target scale, so they aren't removed.
1105 used_tilings.clear(); 1117 used_tilings.clear();
1106 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 1118 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
1107 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); 1119 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
1108 1120
1109 host_impl_.PinchGestureEnd(); 1121 host_impl_.PinchGestureEnd();
1110 1122
1111 // Create a 1.2 scale tiling. Now we have 1.0 and 1.2 tilings. Ideal = 1.2. 1123 // Create a 1.2 scale tiling. Now we have 1.0 and 1.2 tilings. Ideal = 1.2.
1112 scale = 1.2f; 1124 scale = 1.2f;
1113 page_scale = 1.2f; 1125 page_scale = 1.2f;
1114 SetContentsScaleOnBothLayers(1.2f, 1.f, page_scale, 1.f, false); 1126 SetContentsScaleOnBothLayers(1.2f, 1.f, page_scale, 1.f, 0.f, false);
1115 ASSERT_EQ(4u, active_layer_->tilings()->num_tilings()); 1127 ASSERT_EQ(4u, active_layer_->tilings()->num_tilings());
1116 EXPECT_FLOAT_EQ( 1128 EXPECT_FLOAT_EQ(
1117 1.f, 1129 1.f,
1118 active_layer_->tilings()->tiling_at(1)->contents_scale()); 1130 active_layer_->tilings()->tiling_at(1)->contents_scale());
1119 EXPECT_FLOAT_EQ( 1131 EXPECT_FLOAT_EQ(
1120 1.f * low_res_factor, 1132 1.f * low_res_factor,
1121 active_layer_->tilings()->tiling_at(3)->contents_scale()); 1133 active_layer_->tilings()->tiling_at(3)->contents_scale());
1122 1134
1123 // Ensure UpdateTiles won't remove any tilings. 1135 // Ensure UpdateTiles won't remove any tilings.
1124 active_layer_->MarkAllTilingsUsed(); 1136 active_layer_->MarkAllTilingsUsed();
1125 1137
1126 // Mark the non-ideal tilings as used. They won't be removed. 1138 // Mark the non-ideal tilings as used. They won't be removed.
1127 used_tilings.clear(); 1139 used_tilings.clear();
1128 used_tilings.push_back(active_layer_->tilings()->tiling_at(1)); 1140 used_tilings.push_back(active_layer_->tilings()->tiling_at(1));
1129 used_tilings.push_back(active_layer_->tilings()->tiling_at(3)); 1141 used_tilings.push_back(active_layer_->tilings()->tiling_at(3));
1130 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 1142 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
1131 ASSERT_EQ(4u, active_layer_->tilings()->num_tilings()); 1143 ASSERT_EQ(4u, active_layer_->tilings()->num_tilings());
1132 1144
1133 // Now move the ideal scale to 0.5. Our target stays 1.2. 1145 // Now move the ideal scale to 0.5. Our target stays 1.2.
1134 SetContentsScaleOnBothLayers(0.5f, 1.f, page_scale, 1.f, false); 1146 SetContentsScaleOnBothLayers(0.5f, 1.f, page_scale, 1.f, 0.f, false);
1135 1147
1136 // The high resolution tiling is between target and ideal, so is not 1148 // The high resolution tiling is between target and ideal, so is not
1137 // removed. The low res tiling for the old ideal=1.0 scale is removed. 1149 // removed. The low res tiling for the old ideal=1.0 scale is removed.
1138 used_tilings.clear(); 1150 used_tilings.clear();
1139 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 1151 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
1140 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings()); 1152 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings());
1141 1153
1142 // Now move the ideal scale to 1.0. Our target stays 1.2. 1154 // Now move the ideal scale to 1.0. Our target stays 1.2.
1143 SetContentsScaleOnBothLayers(1.f, 1.f, page_scale, 1.f, false); 1155 SetContentsScaleOnBothLayers(1.f, 1.f, page_scale, 1.f, 0.f, false);
1144 1156
1145 // All the tilings are between are target and the ideal, so they are not 1157 // All the tilings are between are target and the ideal, so they are not
1146 // removed. 1158 // removed.
1147 used_tilings.clear(); 1159 used_tilings.clear();
1148 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 1160 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
1149 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings()); 1161 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings());
1150 1162
1151 // Now move the ideal scale to 1.1 on the active layer. Our target stays 1.2. 1163 // Now move the ideal scale to 1.1 on the active layer. Our target stays 1.2.
1152 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.1f, 1.f, page_scale, 1.f, 1164 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.1f, 1.f, page_scale, 1.f,
1153 false); 1165 0.f, false);
1154 1166
1155 // Because the pending layer's ideal scale is still 1.0, our tilings fall 1167 // Because the pending layer's ideal scale is still 1.0, our tilings fall
1156 // in the range [1.0,1.2] and are kept. 1168 // in the range [1.0,1.2] and are kept.
1157 used_tilings.clear(); 1169 used_tilings.clear();
1158 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 1170 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
1159 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings()); 1171 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings());
1160 1172
1161 // Move the ideal scale on the pending layer to 1.1 as well. Our target stays 1173 // Move the ideal scale on the pending layer to 1.1 as well. Our target stays
1162 // 1.2 still. 1174 // 1.2 still.
1163 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.1f, 1.f, page_scale, 1.f, 1175 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.1f, 1.f, page_scale, 1.f,
1164 false); 1176 0.f, false);
1165 1177
1166 // Our 1.0 tiling now falls outside the range between our ideal scale and our 1178 // Our 1.0 tiling now falls outside the range between our ideal scale and our
1167 // target raster scale. But it is in our used tilings set, so nothing is 1179 // target raster scale. But it is in our used tilings set, so nothing is
1168 // deleted. 1180 // deleted.
1169 used_tilings.clear(); 1181 used_tilings.clear();
1170 used_tilings.push_back(active_layer_->tilings()->tiling_at(1)); 1182 used_tilings.push_back(active_layer_->tilings()->tiling_at(1));
1171 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 1183 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
1172 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings()); 1184 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings());
1173 1185
1174 // If we remove it from our used tilings set, it is outside the range to keep 1186 // If we remove it from our used tilings set, it is outside the range to keep
1175 // so it is deleted. 1187 // so it is deleted.
1176 used_tilings.clear(); 1188 used_tilings.clear();
1177 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 1189 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
1178 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); 1190 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
1179 } 1191 }
1180 1192
1181 TEST_F(PictureLayerImplTest, DontAddLowResDuringAnimation) { 1193 TEST_F(PictureLayerImplTest, DontAddLowResDuringAnimation) {
1182 // Make sure this layer covers multiple tiles, since otherwise low 1194 // Make sure this layer covers multiple tiles, since otherwise low
1183 // res won't get created because it is too small. 1195 // res won't get created because it is too small.
1184 gfx::Size tile_size(host_impl_.settings().default_tile_size); 1196 gfx::Size tile_size(host_impl_.settings().default_tile_size);
1185 // Avoid max untiled layer size heuristics via fixed tile size. 1197 // Avoid max untiled layer size heuristics via fixed tile size.
1186 gfx::Size layer_bounds(tile_size.width() + 1, tile_size.height() + 1); 1198 gfx::Size layer_bounds(tile_size.width() + 1, tile_size.height() + 1);
1187 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); 1199 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region());
1188 1200
1189 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; 1201 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
1190 float contents_scale = 1.f; 1202 float contents_scale = 1.f;
1191 float device_scale = 1.f; 1203 float device_scale = 1.f;
1192 float page_scale = 1.f; 1204 float page_scale = 1.f;
1193 float maximum_animation_scale = 1.f; 1205 float maximum_animation_scale = 1.f;
1206 float starting_animation_scale = 0.f;
1194 bool animating_transform = true; 1207 bool animating_transform = true;
1195 1208
1196 ResetTilingsAndRasterScales(); 1209 ResetTilingsAndRasterScales();
1197 1210
1198 // Animating, so don't create low res even if there isn't one already. 1211 // Animating, so don't create low res even if there isn't one already.
1199 SetContentsScaleOnBothLayers(contents_scale, 1212 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
1200 device_scale,
1201 page_scale,
1202 maximum_animation_scale, 1213 maximum_animation_scale,
1203 animating_transform); 1214 starting_animation_scale, animating_transform);
1204 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f); 1215 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
1205 EXPECT_BOTH_EQ(num_tilings(), 1u); 1216 EXPECT_BOTH_EQ(num_tilings(), 1u);
1206 1217
1207 // Stop animating, low res gets created. 1218 // Stop animating, low res gets created.
1208 animating_transform = false; 1219 animating_transform = false;
1209 SetContentsScaleOnBothLayers(contents_scale, 1220 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
1210 device_scale,
1211 page_scale,
1212 maximum_animation_scale, 1221 maximum_animation_scale,
1213 animating_transform); 1222 starting_animation_scale, animating_transform);
1214 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f); 1223 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
1215 EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), low_res_factor); 1224 EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), low_res_factor);
1216 EXPECT_BOTH_EQ(num_tilings(), 2u); 1225 EXPECT_BOTH_EQ(num_tilings(), 2u);
1217 1226
1218 // Ensure UpdateTiles won't remove any tilings. 1227 // Ensure UpdateTiles won't remove any tilings.
1219 active_layer_->MarkAllTilingsUsed(); 1228 active_layer_->MarkAllTilingsUsed();
1220 1229
1221 // Page scale animation, new high res, but no low res. We still have 1230 // Page scale animation, new high res, but no low res. We still have
1222 // a tiling at the previous scale, it's just not marked as low res on the 1231 // a tiling at the previous scale, it's just not marked as low res on the
1223 // active layer. The pending layer drops non-ideal tilings. 1232 // active layer. The pending layer drops non-ideal tilings.
1224 contents_scale = 2.f; 1233 contents_scale = 2.f;
1225 page_scale = 2.f; 1234 page_scale = 2.f;
1226 maximum_animation_scale = 2.f; 1235 maximum_animation_scale = 2.f;
1227 animating_transform = true; 1236 animating_transform = true;
1228 SetContentsScaleOnBothLayers(contents_scale, 1237 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
1229 device_scale,
1230 page_scale,
1231 maximum_animation_scale, 1238 maximum_animation_scale,
1232 animating_transform); 1239 starting_animation_scale, animating_transform);
1233 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 1240 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
1234 EXPECT_FALSE(active_layer_->LowResTiling()); 1241 EXPECT_FALSE(active_layer_->LowResTiling());
1235 EXPECT_FALSE(pending_layer_->LowResTiling()); 1242 EXPECT_FALSE(pending_layer_->LowResTiling());
1236 EXPECT_EQ(3u, active_layer_->num_tilings()); 1243 EXPECT_EQ(3u, active_layer_->num_tilings());
1237 EXPECT_EQ(1u, pending_layer_->num_tilings()); 1244 EXPECT_EQ(1u, pending_layer_->num_tilings());
1238 1245
1239 // Stop animating, new low res gets created for final page scale. 1246 // Stop animating, new low res gets created for final page scale.
1240 animating_transform = false; 1247 animating_transform = false;
1241 SetContentsScaleOnBothLayers(contents_scale, 1248 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
1242 device_scale,
1243 page_scale,
1244 maximum_animation_scale, 1249 maximum_animation_scale,
1245 animating_transform); 1250 starting_animation_scale, animating_transform);
1246 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 1251 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
1247 EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), 2.f * low_res_factor); 1252 EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), 2.f * low_res_factor);
1248 EXPECT_EQ(4u, active_layer_->num_tilings()); 1253 EXPECT_EQ(4u, active_layer_->num_tilings());
1249 EXPECT_EQ(2u, pending_layer_->num_tilings()); 1254 EXPECT_EQ(2u, pending_layer_->num_tilings());
1250 } 1255 }
1251 1256
1252 TEST_F(PictureLayerImplTest, DontAddLowResForSmallLayers) { 1257 TEST_F(PictureLayerImplTest, DontAddLowResForSmallLayers) {
1253 gfx::Size layer_bounds(host_impl_.settings().default_tile_size); 1258 gfx::Size layer_bounds(host_impl_.settings().default_tile_size);
1254 gfx::Size tile_size(100, 100); 1259 gfx::Size tile_size(100, 100);
1255 1260
1256 scoped_refptr<FakePicturePileImpl> pending_pile = 1261 scoped_refptr<FakePicturePileImpl> pending_pile =
1257 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1262 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1258 scoped_refptr<FakePicturePileImpl> active_pile = 1263 scoped_refptr<FakePicturePileImpl> active_pile =
1259 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1264 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1260 1265
1261 SetupTrees(pending_pile, active_pile); 1266 SetupTrees(pending_pile, active_pile);
1262 1267
1263 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; 1268 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
1264 float device_scale = 1.f; 1269 float device_scale = 1.f;
1265 float page_scale = 1.f; 1270 float page_scale = 1.f;
1266 float maximum_animation_scale = 1.f; 1271 float maximum_animation_scale = 1.f;
1272 float starting_animation_scale = 0.f;
1267 bool animating_transform = false; 1273 bool animating_transform = false;
1268 1274
1269 // Contents exactly fit on one tile at scale 1, no low res. 1275 // Contents exactly fit on one tile at scale 1, no low res.
1270 float contents_scale = 1.f; 1276 float contents_scale = 1.f;
1271 SetContentsScaleOnBothLayers(contents_scale, 1277 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
1272 device_scale,
1273 page_scale,
1274 maximum_animation_scale, 1278 maximum_animation_scale,
1275 animating_transform); 1279 starting_animation_scale, animating_transform);
1276 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale); 1280 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale);
1277 EXPECT_BOTH_EQ(num_tilings(), 1u); 1281 EXPECT_BOTH_EQ(num_tilings(), 1u);
1278 1282
1279 ResetTilingsAndRasterScales(); 1283 ResetTilingsAndRasterScales();
1280 1284
1281 // Contents that are smaller than one tile, no low res. 1285 // Contents that are smaller than one tile, no low res.
1282 contents_scale = 0.123f; 1286 contents_scale = 0.123f;
1283 SetContentsScaleOnBothLayers(contents_scale, 1287 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
1284 device_scale,
1285 page_scale,
1286 maximum_animation_scale, 1288 maximum_animation_scale,
1287 animating_transform); 1289 starting_animation_scale, animating_transform);
1288 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale); 1290 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale);
1289 EXPECT_BOTH_EQ(num_tilings(), 1u); 1291 EXPECT_BOTH_EQ(num_tilings(), 1u);
1290 1292
1291 ResetTilingsAndRasterScales(); 1293 ResetTilingsAndRasterScales();
1292 1294
1293 // Any content bounds that would create more than one tile will 1295 // Any content bounds that would create more than one tile will
1294 // generate a low res tiling. 1296 // generate a low res tiling.
1295 contents_scale = 2.5f; 1297 contents_scale = 2.5f;
1296 SetContentsScaleOnBothLayers(contents_scale, 1298 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
1297 device_scale,
1298 page_scale,
1299 maximum_animation_scale, 1299 maximum_animation_scale,
1300 animating_transform); 1300 starting_animation_scale, animating_transform);
1301 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale); 1301 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale);
1302 EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), 1302 EXPECT_BOTH_EQ(LowResTiling()->contents_scale(),
1303 contents_scale * low_res_factor); 1303 contents_scale * low_res_factor);
1304 EXPECT_BOTH_EQ(num_tilings(), 2u); 1304 EXPECT_BOTH_EQ(num_tilings(), 2u);
1305 1305
1306 // Mask layers dont create low res since they always fit on one tile. 1306 // Mask layers dont create low res since they always fit on one tile.
1307 scoped_ptr<FakePictureLayerImpl> mask = 1307 scoped_ptr<FakePictureLayerImpl> mask =
1308 FakePictureLayerImpl::CreateMaskWithRasterSource( 1308 FakePictureLayerImpl::CreateMaskWithRasterSource(
1309 host_impl_.pending_tree(), 3, pending_pile); 1309 host_impl_.pending_tree(), 3, pending_pile);
1310 mask->SetBounds(layer_bounds); 1310 mask->SetBounds(layer_bounds);
1311 mask->SetContentBounds(layer_bounds); 1311 mask->SetContentBounds(layer_bounds);
1312 mask->SetDrawsContent(true); 1312 mask->SetDrawsContent(true);
1313 1313
1314 SetupDrawPropertiesAndUpdateTiles(mask.get(), contents_scale, device_scale, 1314 SetupDrawPropertiesAndUpdateTiles(
1315 page_scale, maximum_animation_scale, 1315 mask.get(), contents_scale, device_scale, page_scale,
1316 animating_transform); 1316 maximum_animation_scale, starting_animation_scale, animating_transform);
1317 EXPECT_EQ(mask->HighResTiling()->contents_scale(), contents_scale); 1317 EXPECT_EQ(mask->HighResTiling()->contents_scale(), contents_scale);
1318 EXPECT_EQ(mask->num_tilings(), 1u); 1318 EXPECT_EQ(mask->num_tilings(), 1u);
1319 } 1319 }
1320 1320
1321 TEST_F(PictureLayerImplTest, HugeMasksGetScaledDown) { 1321 TEST_F(PictureLayerImplTest, HugeMasksGetScaledDown) {
1322 base::TimeTicks time_ticks; 1322 base::TimeTicks time_ticks;
1323 time_ticks += base::TimeDelta::FromMilliseconds(1); 1323 time_ticks += base::TimeDelta::FromMilliseconds(1);
1324 host_impl_.SetCurrentBeginFrameArgs( 1324 host_impl_.SetCurrentBeginFrameArgs(
1325 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); 1325 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1326 1326
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1367 gfx::Size mask_texture_size; 1367 gfx::Size mask_texture_size;
1368 active_mask->GetContentsResourceId(&mask_resource_id, &mask_texture_size); 1368 active_mask->GetContentsResourceId(&mask_resource_id, &mask_texture_size);
1369 EXPECT_NE(0u, mask_resource_id); 1369 EXPECT_NE(0u, mask_resource_id);
1370 EXPECT_EQ(active_mask->bounds(), mask_texture_size); 1370 EXPECT_EQ(active_mask->bounds(), mask_texture_size);
1371 1371
1372 // Drop resources and recreate them, still the same. 1372 // Drop resources and recreate them, still the same.
1373 pending_mask->ReleaseResources(); 1373 pending_mask->ReleaseResources();
1374 active_mask->ReleaseResources(); 1374 active_mask->ReleaseResources();
1375 pending_mask->RecreateResources(); 1375 pending_mask->RecreateResources();
1376 active_mask->RecreateResources(); 1376 active_mask->RecreateResources();
1377 SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, false); 1377 SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, 0.f,
1378 false);
1378 active_mask->HighResTiling()->CreateAllTilesForTesting(); 1379 active_mask->HighResTiling()->CreateAllTilesForTesting();
1379 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size()); 1380 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size());
1380 EXPECT_NE(0u, mask_resource_id); 1381 EXPECT_NE(0u, mask_resource_id);
1381 EXPECT_EQ(active_mask->bounds(), mask_texture_size); 1382 EXPECT_EQ(active_mask->bounds(), mask_texture_size);
1382 1383
1383 // Resize larger than the max texture size. 1384 // Resize larger than the max texture size.
1384 int max_texture_size = host_impl_.GetRendererCapabilities().max_texture_size; 1385 int max_texture_size = host_impl_.GetRendererCapabilities().max_texture_size;
1385 gfx::Size huge_bounds(max_texture_size + 1, 10); 1386 gfx::Size huge_bounds(max_texture_size + 1, 10);
1386 scoped_refptr<FakePicturePileImpl> huge_pile = 1387 scoped_refptr<FakePicturePileImpl> huge_pile =
1387 FakePicturePileImpl::CreateFilledPile(tile_size, huge_bounds); 1388 FakePicturePileImpl::CreateFilledPile(tile_size, huge_bounds);
(...skipping 24 matching lines...) Expand all
1412 EXPECT_NE(0u, mask_resource_id); 1413 EXPECT_NE(0u, mask_resource_id);
1413 gfx::Size expected_size = active_mask->bounds(); 1414 gfx::Size expected_size = active_mask->bounds();
1414 expected_size.SetToMin(gfx::Size(max_texture_size, max_texture_size)); 1415 expected_size.SetToMin(gfx::Size(max_texture_size, max_texture_size));
1415 EXPECT_EQ(expected_size, mask_texture_size); 1416 EXPECT_EQ(expected_size, mask_texture_size);
1416 1417
1417 // Drop resources and recreate them, still the same. 1418 // Drop resources and recreate them, still the same.
1418 pending_mask->ReleaseResources(); 1419 pending_mask->ReleaseResources();
1419 active_mask->ReleaseResources(); 1420 active_mask->ReleaseResources();
1420 pending_mask->RecreateResources(); 1421 pending_mask->RecreateResources();
1421 active_mask->RecreateResources(); 1422 active_mask->RecreateResources();
1422 SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, false); 1423 SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, 0.f,
1424 false);
1423 active_mask->HighResTiling()->CreateAllTilesForTesting(); 1425 active_mask->HighResTiling()->CreateAllTilesForTesting();
1424 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size()); 1426 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size());
1425 EXPECT_NE(0u, mask_resource_id); 1427 EXPECT_NE(0u, mask_resource_id);
1426 EXPECT_EQ(expected_size, mask_texture_size); 1428 EXPECT_EQ(expected_size, mask_texture_size);
1427 1429
1428 // Do another activate, the same holds. 1430 // Do another activate, the same holds.
1429 SetupPendingTree(huge_pile); 1431 SetupPendingTree(huge_pile);
1430 ActivateTree(); 1432 ActivateTree();
1431 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size()); 1433 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size());
1432 active_layer_->GetContentsResourceId(&mask_resource_id, &mask_texture_size); 1434 active_layer_->GetContentsResourceId(&mask_resource_id, &mask_texture_size);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 EXPECT_FALSE(pending_layer_->tilings()); 1535 EXPECT_FALSE(pending_layer_->tilings());
1534 pending_layer_->RecreateResources(); 1536 pending_layer_->RecreateResources();
1535 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); 1537 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings());
1536 1538
1537 // This should create new tilings. 1539 // This should create new tilings.
1538 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1540 SetupDrawPropertiesAndUpdateTiles(pending_layer_,
1539 1.f, // ideal contents scale 1541 1.f, // ideal contents scale
1540 1.f, // device scale 1542 1.f, // device scale
1541 1.f, // page scale 1543 1.f, // page scale
1542 1.f, // maximum animation scale 1544 1.f, // maximum animation scale
1545 0.f, // starting animation_scale
1543 false); 1546 false);
1544 EXPECT_EQ(2u, pending_layer_->tilings()->num_tilings()); 1547 EXPECT_EQ(2u, pending_layer_->tilings()->num_tilings());
1545 } 1548 }
1546 1549
1547 TEST_F(PictureLayerImplTest, ClampTilesToMaxTileSize) { 1550 TEST_F(PictureLayerImplTest, ClampTilesToMaxTileSize) {
1548 // The default max tile size is larger than 400x400. 1551 // The default max tile size is larger than 400x400.
1549 gfx::Size tile_size(400, 400); 1552 gfx::Size tile_size(400, 400);
1550 gfx::Size layer_bounds(5000, 5000); 1553 gfx::Size layer_bounds(5000, 5000);
1551 1554
1552 scoped_refptr<FakePicturePileImpl> pending_pile = 1555 scoped_refptr<FakePicturePileImpl> pending_pile =
(...skipping 15 matching lines...) Expand all
1568 ResetTilingsAndRasterScales(); 1571 ResetTilingsAndRasterScales();
1569 1572
1570 // Change the max texture size on the output surface context. 1573 // Change the max texture size on the output surface context.
1571 scoped_ptr<TestWebGraphicsContext3D> context = 1574 scoped_ptr<TestWebGraphicsContext3D> context =
1572 TestWebGraphicsContext3D::Create(); 1575 TestWebGraphicsContext3D::Create();
1573 context->set_max_texture_size(140); 1576 context->set_max_texture_size(140);
1574 host_impl_.DidLoseOutputSurface(); 1577 host_impl_.DidLoseOutputSurface();
1575 host_impl_.InitializeRenderer( 1578 host_impl_.InitializeRenderer(
1576 FakeOutputSurface::Create3d(context.Pass()).Pass()); 1579 FakeOutputSurface::Create3d(context.Pass()).Pass());
1577 1580
1578 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, false); 1581 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
1582 false);
1579 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); 1583 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
1580 1584
1581 pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); 1585 pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting();
1582 1586
1583 // Verify the tiles are not larger than the context's max texture size. 1587 // Verify the tiles are not larger than the context's max texture size.
1584 tile = pending_layer_->tilings()->tiling_at(0)->AllTilesForTesting()[0]; 1588 tile = pending_layer_->tilings()->tiling_at(0)->AllTilesForTesting()[0];
1585 EXPECT_GE(140, tile->content_rect().width()); 1589 EXPECT_GE(140, tile->content_rect().width());
1586 EXPECT_GE(140, tile->content_rect().height()); 1590 EXPECT_GE(140, tile->content_rect().height());
1587 } 1591 }
1588 1592
(...skipping 23 matching lines...) Expand all
1612 ResetTilingsAndRasterScales(); 1616 ResetTilingsAndRasterScales();
1613 1617
1614 // Change the max texture size on the output surface context. 1618 // Change the max texture size on the output surface context.
1615 scoped_ptr<TestWebGraphicsContext3D> context = 1619 scoped_ptr<TestWebGraphicsContext3D> context =
1616 TestWebGraphicsContext3D::Create(); 1620 TestWebGraphicsContext3D::Create();
1617 context->set_max_texture_size(140); 1621 context->set_max_texture_size(140);
1618 host_impl_.DidLoseOutputSurface(); 1622 host_impl_.DidLoseOutputSurface();
1619 host_impl_.InitializeRenderer( 1623 host_impl_.InitializeRenderer(
1620 FakeOutputSurface::Create3d(context.Pass()).Pass()); 1624 FakeOutputSurface::Create3d(context.Pass()).Pass());
1621 1625
1622 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); 1626 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
1627 false);
1623 ASSERT_LE(1u, active_layer_->tilings()->num_tilings()); 1628 ASSERT_LE(1u, active_layer_->tilings()->num_tilings());
1624 1629
1625 active_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); 1630 active_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting();
1626 1631
1627 // There should be more than one tile since the max texture size won't cover 1632 // There should be more than one tile since the max texture size won't cover
1628 // the layer. 1633 // the layer.
1629 high_res_tiling = active_layer_->tilings()->tiling_at(0); 1634 high_res_tiling = active_layer_->tilings()->tiling_at(0);
1630 EXPECT_LT(1u, high_res_tiling->AllTilesForTesting().size()); 1635 EXPECT_LT(1u, high_res_tiling->AllTilesForTesting().size());
1631 1636
1632 // Verify the tiles are not larger than the context's max texture size. 1637 // Verify the tiles are not larger than the context's max texture size.
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
2009 2014
2010 // One ideal tile exists, this will get used when drawing. 2015 // One ideal tile exists, this will get used when drawing.
2011 std::vector<Tile*> ideal_tiles; 2016 std::vector<Tile*> ideal_tiles;
2012 EXPECT_EQ(2.f, active_layer_->HighResTiling()->contents_scale()); 2017 EXPECT_EQ(2.f, active_layer_->HighResTiling()->contents_scale());
2013 ideal_tiles.push_back(active_layer_->HighResTiling()->TileAt(0, 0)); 2018 ideal_tiles.push_back(active_layer_->HighResTiling()->TileAt(0, 0));
2014 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting( 2019 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(
2015 ideal_tiles); 2020 ideal_tiles);
2016 2021
2017 // Due to layer scale throttling, the raster contents scale is changed to 1, 2022 // Due to layer scale throttling, the raster contents scale is changed to 1,
2018 // while the ideal is still 2. 2023 // while the ideal is still 2.
2019 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); 2024 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
2020 SetupDrawPropertiesAndUpdateTiles(active_layer_, 2.f, 1.f, 1.f, 1.f, false); 2025 false);
2026 SetupDrawPropertiesAndUpdateTiles(active_layer_, 2.f, 1.f, 1.f, 1.f, 0.f,
2027 false);
2021 2028
2022 EXPECT_EQ(1.f, active_layer_->HighResTiling()->contents_scale()); 2029 EXPECT_EQ(1.f, active_layer_->HighResTiling()->contents_scale());
2023 EXPECT_EQ(1.f, active_layer_->raster_contents_scale()); 2030 EXPECT_EQ(1.f, active_layer_->raster_contents_scale());
2024 EXPECT_EQ(2.f, active_layer_->ideal_contents_scale()); 2031 EXPECT_EQ(2.f, active_layer_->ideal_contents_scale());
2025 2032
2026 // Both tilings still exist. 2033 // Both tilings still exist.
2027 EXPECT_EQ(2.f, active_layer_->tilings()->tiling_at(0)->contents_scale()); 2034 EXPECT_EQ(2.f, active_layer_->tilings()->tiling_at(0)->contents_scale());
2028 EXPECT_EQ(1.f, active_layer_->tilings()->tiling_at(1)->contents_scale()); 2035 EXPECT_EQ(1.f, active_layer_->tilings()->tiling_at(1)->contents_scale());
2029 2036
2030 // All high res tiles have resources. 2037 // All high res tiles have resources.
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
2474 // Now, set the bounds to be 1x1, so that minimum contents scale becomes 1. 2481 // Now, set the bounds to be 1x1, so that minimum contents scale becomes 1.
2475 pending_pile = 2482 pending_pile =
2476 FakePicturePileImpl::CreateFilledPile(tile_size, gfx::Size(1, 1)); 2483 FakePicturePileImpl::CreateFilledPile(tile_size, gfx::Size(1, 1));
2477 SetupPendingTree(pending_pile); 2484 SetupPendingTree(pending_pile);
2478 2485
2479 // Another sanity check. 2486 // Another sanity check.
2480 EXPECT_EQ(1.f, pending_layer_->MinimumContentsScale()); 2487 EXPECT_EQ(1.f, pending_layer_->MinimumContentsScale());
2481 2488
2482 // Since the MinContentsScale is 1, the 0.5 tiling should be replaced by a 1.0 2489 // Since the MinContentsScale is 1, the 0.5 tiling should be replaced by a 1.0
2483 // tiling. 2490 // tiling.
2484 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 0.5f, 1.f, 1.f, 1.f, false); 2491 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 0.5f, 1.f, 1.f, 1.f, 0.f,
2492 false);
2485 2493
2486 EXPECT_EQ(1u, pending_layer_->tilings()->num_tilings()); 2494 EXPECT_EQ(1u, pending_layer_->tilings()->num_tilings());
2487 PictureLayerTiling* tiling = 2495 PictureLayerTiling* tiling =
2488 pending_layer_->tilings()->FindTilingWithScale(1.0f); 2496 pending_layer_->tilings()->FindTilingWithScale(1.0f);
2489 ASSERT_TRUE(tiling); 2497 ASSERT_TRUE(tiling);
2490 EXPECT_EQ(HIGH_RESOLUTION, tiling->resolution()); 2498 EXPECT_EQ(HIGH_RESOLUTION, tiling->resolution());
2491 } 2499 }
2492 2500
2493 TEST_F(PictureLayerImplTest, LowResTilingWithoutGpuRasterization) { 2501 TEST_F(PictureLayerImplTest, LowResTilingWithoutGpuRasterization) {
2494 gfx::Size default_tile_size(host_impl_.settings().default_tile_size); 2502 gfx::Size default_tile_size(host_impl_.settings().default_tile_size);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2535 EXPECT_EQ(64u, active_layer_->HighResTiling()->AllTilesForTesting().size()); 2543 EXPECT_EQ(64u, active_layer_->HighResTiling()->AllTilesForTesting().size());
2536 2544
2537 // Visible viewport should be covered by 4 tiles. No other 2545 // Visible viewport should be covered by 4 tiles. No other
2538 // tiles should be required for activation. 2546 // tiles should be required for activation.
2539 EXPECT_EQ(4u, NumberOfTilesRequired(active_layer_->HighResTiling())); 2547 EXPECT_EQ(4u, NumberOfTilesRequired(active_layer_->HighResTiling()));
2540 } 2548 }
2541 2549
2542 TEST_F(PictureLayerImplTest, NoTilingIfDoesNotDrawContent) { 2550 TEST_F(PictureLayerImplTest, NoTilingIfDoesNotDrawContent) {
2543 // Set up layers with tilings. 2551 // Set up layers with tilings.
2544 SetupDefaultTrees(gfx::Size(10, 10)); 2552 SetupDefaultTrees(gfx::Size(10, 10));
2545 SetContentsScaleOnBothLayers(1.f, 1.f, 1.f, 1.f, false); 2553 SetContentsScaleOnBothLayers(1.f, 1.f, 1.f, 1.f, 0.f, false);
2546 pending_layer_->PushPropertiesTo(active_layer_); 2554 pending_layer_->PushPropertiesTo(active_layer_);
2547 EXPECT_TRUE(pending_layer_->DrawsContent()); 2555 EXPECT_TRUE(pending_layer_->DrawsContent());
2548 EXPECT_TRUE(pending_layer_->CanHaveTilings()); 2556 EXPECT_TRUE(pending_layer_->CanHaveTilings());
2549 EXPECT_GE(pending_layer_->num_tilings(), 0u); 2557 EXPECT_GE(pending_layer_->num_tilings(), 0u);
2550 EXPECT_GE(active_layer_->num_tilings(), 0u); 2558 EXPECT_GE(active_layer_->num_tilings(), 0u);
2551 2559
2552 // Set content to false, which should make CanHaveTilings return false. 2560 // Set content to false, which should make CanHaveTilings return false.
2553 pending_layer_->SetDrawsContent(false); 2561 pending_layer_->SetDrawsContent(false);
2554 EXPECT_FALSE(pending_layer_->DrawsContent()); 2562 EXPECT_FALSE(pending_layer_->DrawsContent());
2555 EXPECT_FALSE(pending_layer_->CanHaveTilings()); 2563 EXPECT_FALSE(pending_layer_->CanHaveTilings());
2556 2564
2557 // No tilings should be pushed to active layer. 2565 // No tilings should be pushed to active layer.
2558 pending_layer_->PushPropertiesTo(active_layer_); 2566 pending_layer_->PushPropertiesTo(active_layer_);
2559 EXPECT_EQ(0u, active_layer_->num_tilings()); 2567 EXPECT_EQ(0u, active_layer_->num_tilings());
2560 } 2568 }
2561 2569
2562 TEST_F(PictureLayerImplTest, FirstTilingDuringPinch) { 2570 TEST_F(PictureLayerImplTest, FirstTilingDuringPinch) {
2563 SetupDefaultTrees(gfx::Size(10, 10)); 2571 SetupDefaultTrees(gfx::Size(10, 10));
2564 2572
2565 // We start with a tiling at scale 1. 2573 // We start with a tiling at scale 1.
2566 EXPECT_EQ(1.f, pending_layer_->HighResTiling()->contents_scale()); 2574 EXPECT_EQ(1.f, pending_layer_->HighResTiling()->contents_scale());
2567 2575
2568 // When we scale up by 2.3, we get a new tiling that is a power of 2, in this 2576 // When we scale up by 2.3, we get a new tiling that is a power of 2, in this
2569 // case 4. 2577 // case 4.
2570 host_impl_.PinchGestureBegin(); 2578 host_impl_.PinchGestureBegin();
2571 float high_res_scale = 2.3f; 2579 float high_res_scale = 2.3f;
2572 SetContentsScaleOnBothLayers(high_res_scale, 1.f, 1.f, 1.f, false); 2580 SetContentsScaleOnBothLayers(high_res_scale, 1.f, 1.f, 1.f, 0.f, false);
2573 EXPECT_EQ(4.f, pending_layer_->HighResTiling()->contents_scale()); 2581 EXPECT_EQ(4.f, pending_layer_->HighResTiling()->contents_scale());
2574 } 2582 }
2575 2583
2576 TEST_F(PictureLayerImplTest, PinchingTooSmall) { 2584 TEST_F(PictureLayerImplTest, PinchingTooSmall) {
2577 SetupDefaultTrees(gfx::Size(10, 10)); 2585 SetupDefaultTrees(gfx::Size(10, 10));
2578 2586
2579 // We start with a tiling at scale 1. 2587 // We start with a tiling at scale 1.
2580 EXPECT_EQ(1.f, pending_layer_->HighResTiling()->contents_scale()); 2588 EXPECT_EQ(1.f, pending_layer_->HighResTiling()->contents_scale());
2581 2589
2582 host_impl_.PinchGestureBegin(); 2590 host_impl_.PinchGestureBegin();
2583 float high_res_scale = 0.0001f; 2591 float high_res_scale = 0.0001f;
2584 EXPECT_LT(high_res_scale, pending_layer_->MinimumContentsScale()); 2592 EXPECT_LT(high_res_scale, pending_layer_->MinimumContentsScale());
2585 2593
2586 SetContentsScaleOnBothLayers(high_res_scale, 1.f, high_res_scale, 1.f, false); 2594 SetContentsScaleOnBothLayers(high_res_scale, 1.f, high_res_scale, 1.f, 0.f,
2595 false);
2587 EXPECT_FLOAT_EQ(pending_layer_->MinimumContentsScale(), 2596 EXPECT_FLOAT_EQ(pending_layer_->MinimumContentsScale(),
2588 pending_layer_->HighResTiling()->contents_scale()); 2597 pending_layer_->HighResTiling()->contents_scale());
2589 } 2598 }
2590 2599
2591 TEST_F(PictureLayerImplTest, PinchingTooSmallWithContentsScale) { 2600 TEST_F(PictureLayerImplTest, PinchingTooSmallWithContentsScale) {
2592 SetupDefaultTrees(gfx::Size(10, 10)); 2601 SetupDefaultTrees(gfx::Size(10, 10));
2593 2602
2594 ResetTilingsAndRasterScales(); 2603 ResetTilingsAndRasterScales();
2595 2604
2596 float contents_scale = 0.15f; 2605 float contents_scale = 0.15f;
2597 SetContentsScaleOnBothLayers(contents_scale, 1.f, 1.f, 1.f, false); 2606 SetContentsScaleOnBothLayers(contents_scale, 1.f, 1.f, 1.f, 0.f, false);
2598 2607
2599 ASSERT_GE(pending_layer_->num_tilings(), 0u); 2608 ASSERT_GE(pending_layer_->num_tilings(), 0u);
2600 EXPECT_FLOAT_EQ(contents_scale, 2609 EXPECT_FLOAT_EQ(contents_scale,
2601 pending_layer_->HighResTiling()->contents_scale()); 2610 pending_layer_->HighResTiling()->contents_scale());
2602 2611
2603 host_impl_.PinchGestureBegin(); 2612 host_impl_.PinchGestureBegin();
2604 2613
2605 float page_scale = 0.0001f; 2614 float page_scale = 0.0001f;
2606 EXPECT_LT(page_scale * contents_scale, 2615 EXPECT_LT(page_scale * contents_scale,
2607 pending_layer_->MinimumContentsScale()); 2616 pending_layer_->MinimumContentsScale());
2608 2617
2609 SetContentsScaleOnBothLayers(contents_scale * page_scale, 1.f, page_scale, 2618 SetContentsScaleOnBothLayers(contents_scale * page_scale, 1.f, page_scale,
2610 1.f, false); 2619 1.f, 0.f, false);
2611 ASSERT_GE(pending_layer_->num_tilings(), 0u); 2620 ASSERT_GE(pending_layer_->num_tilings(), 0u);
2612 EXPECT_FLOAT_EQ(pending_layer_->MinimumContentsScale(), 2621 EXPECT_FLOAT_EQ(pending_layer_->MinimumContentsScale(),
2613 pending_layer_->HighResTiling()->contents_scale()); 2622 pending_layer_->HighResTiling()->contents_scale());
2614 } 2623 }
2615 2624
2625 TEST_F(PictureLayerImplTest, ConsiderAnimationStartScaleForRasterScale) {
2626 gfx::Size viewport_size(1000, 1000);
2627 host_impl_.SetViewportSize(viewport_size);
2628
2629 gfx::Size layer_bounds(100, 100);
2630 SetupDefaultTrees(layer_bounds);
2631
2632 float contents_scale = 2.f;
2633 float device_scale = 1.f;
2634 float page_scale = 1.f;
2635 float maximum_animation_scale = 3.f;
2636 float starting_animation_scale = 1.f;
2637 bool animating_transform = true;
2638
2639 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
2640
2641 // Maximum animation scale is greater than starting animation scale
2642 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2643 maximum_animation_scale,
2644 starting_animation_scale, animating_transform);
2645 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f);
2646
2647 animating_transform = false;
2648
2649 // Once we stop animating, a new high-res tiling should be created.
2650 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2651 maximum_animation_scale,
2652 starting_animation_scale, animating_transform);
2653 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
2654
2655 // Starting animation scale greater than maximum animation scale
2656 // Bounds at starting scale within the viewport
2657 animating_transform = true;
2658 starting_animation_scale = 5.f;
2659
2660 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2661 maximum_animation_scale,
2662 starting_animation_scale, animating_transform);
2663 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 5.f);
2664
2665 // Once we stop animating, a new high-res tiling should be created.
2666 animating_transform = false;
2667 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2668 maximum_animation_scale,
2669 starting_animation_scale, animating_transform);
2670 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
2671
2672 // Starting Animation scale greater than maximum animation scale
2673 // Bounds at starting scale outisde the viewport
2674 animating_transform = true;
2675 starting_animation_scale = 11.f;
2676
2677 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2678 maximum_animation_scale,
2679 starting_animation_scale, animating_transform);
2680 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f);
2681 }
2682
2616 TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForCpuRasterization) { 2683 TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForCpuRasterization) {
2617 gfx::Size viewport_size(1000, 1000); 2684 gfx::Size viewport_size(1000, 1000);
2618 host_impl_.SetViewportSize(viewport_size); 2685 host_impl_.SetViewportSize(viewport_size);
2619 2686
2620 gfx::Size layer_bounds(100, 100); 2687 gfx::Size layer_bounds(100, 100);
2621 SetupDefaultTrees(layer_bounds); 2688 SetupDefaultTrees(layer_bounds);
2622 2689
2623 float contents_scale = 1.f; 2690 float contents_scale = 1.f;
2624 float device_scale = 1.f; 2691 float device_scale = 1.f;
2625 float page_scale = 1.f; 2692 float page_scale = 1.f;
2626 float maximum_animation_scale = 1.f; 2693 float maximum_animation_scale = 1.f;
2694 float starting_animation_scale = 0.f;
2627 bool animating_transform = false; 2695 bool animating_transform = false;
2628 2696
2629 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f); 2697 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
2630 2698
2631 // Since we're CPU-rasterizing, starting an animation should cause tiling 2699 // Since we're CPU-rasterizing, starting an animation should cause tiling
2632 // resolution to get set to the maximum animation scale factor. 2700 // resolution to get set to the maximum animation scale factor.
2633 animating_transform = true; 2701 animating_transform = true;
2634 maximum_animation_scale = 3.f; 2702 maximum_animation_scale = 3.f;
2635 contents_scale = 2.f; 2703 contents_scale = 2.f;
2636 2704
2637 SetContentsScaleOnBothLayers(contents_scale, 2705 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2638 device_scale,
2639 page_scale,
2640 maximum_animation_scale, 2706 maximum_animation_scale,
2641 animating_transform); 2707 starting_animation_scale, animating_transform);
2642 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f); 2708 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f);
2643 2709
2644 // Further changes to scale during the animation should not cause a new 2710 // Further changes to scale during the animation should not cause a new
2645 // high-res tiling to get created. 2711 // high-res tiling to get created.
2646 contents_scale = 4.f; 2712 contents_scale = 4.f;
2647 maximum_animation_scale = 5.f; 2713 maximum_animation_scale = 5.f;
2648 2714
2649 SetContentsScaleOnBothLayers(contents_scale, 2715 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2650 device_scale,
2651 page_scale,
2652 maximum_animation_scale, 2716 maximum_animation_scale,
2653 animating_transform); 2717 starting_animation_scale, animating_transform);
2654 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f); 2718 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f);
2655 2719
2656 // Once we stop animating, a new high-res tiling should be created. 2720 // Once we stop animating, a new high-res tiling should be created.
2657 animating_transform = false; 2721 animating_transform = false;
2658 2722
2659 SetContentsScaleOnBothLayers(contents_scale, 2723 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2660 device_scale,
2661 page_scale,
2662 maximum_animation_scale, 2724 maximum_animation_scale,
2663 animating_transform); 2725 starting_animation_scale, animating_transform);
2664 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); 2726 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
2665 2727
2666 // When animating with an unknown maximum animation scale factor, a new 2728 // When animating with an unknown maximum animation scale factor, a new
2667 // high-res tiling should be created at a source scale of 1. 2729 // high-res tiling should be created at a source scale of 1.
2668 animating_transform = true; 2730 animating_transform = true;
2669 contents_scale = 2.f; 2731 contents_scale = 2.f;
2670 maximum_animation_scale = 0.f; 2732 maximum_animation_scale = 0.f;
2671 2733
2672 SetContentsScaleOnBothLayers(contents_scale, 2734 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2673 device_scale,
2674 page_scale,
2675 maximum_animation_scale, 2735 maximum_animation_scale,
2676 animating_transform); 2736 starting_animation_scale, animating_transform);
2677 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale); 2737 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
2678 2738
2679 // Further changes to scale during the animation should not cause a new 2739 // Further changes to scale during the animation should not cause a new
2680 // high-res tiling to get created. 2740 // high-res tiling to get created.
2681 contents_scale = 3.f; 2741 contents_scale = 3.f;
2682 2742
2683 SetContentsScaleOnBothLayers(contents_scale, 2743 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2684 device_scale,
2685 page_scale,
2686 maximum_animation_scale, 2744 maximum_animation_scale,
2687 animating_transform); 2745 starting_animation_scale, animating_transform);
2688 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale); 2746 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
2689 2747
2690 // Once we stop animating, a new high-res tiling should be created. 2748 // Once we stop animating, a new high-res tiling should be created.
2691 animating_transform = false; 2749 animating_transform = false;
2692 contents_scale = 4.f; 2750 contents_scale = 4.f;
2693 2751
2694 SetContentsScaleOnBothLayers(contents_scale, 2752 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2695 device_scale,
2696 page_scale,
2697 maximum_animation_scale, 2753 maximum_animation_scale,
2698 animating_transform); 2754 starting_animation_scale, animating_transform);
2699 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); 2755 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
2700 2756
2701 // When animating with a maxmium animation scale factor that is so large 2757 // When animating with a maxmium animation scale factor that is so large
2702 // that the layer grows larger than the viewport at this scale, a new 2758 // that the layer grows larger than the viewport at this scale, a new
2703 // high-res tiling should get created at a source scale of 1, not at its 2759 // high-res tiling should get created at a source scale of 1, not at its
2704 // maximum scale. 2760 // maximum scale.
2705 animating_transform = true; 2761 animating_transform = true;
2706 contents_scale = 2.f; 2762 contents_scale = 2.f;
2707 maximum_animation_scale = 11.f; 2763 maximum_animation_scale = 11.f;
2708 2764
2709 SetContentsScaleOnBothLayers(contents_scale, 2765 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2710 device_scale,
2711 page_scale,
2712 maximum_animation_scale, 2766 maximum_animation_scale,
2713 animating_transform); 2767 starting_animation_scale, animating_transform);
2714 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale); 2768 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
2715 2769
2716 // Once we stop animating, a new high-res tiling should be created. 2770 // Once we stop animating, a new high-res tiling should be created.
2717 animating_transform = false; 2771 animating_transform = false;
2718 contents_scale = 11.f; 2772 contents_scale = 11.f;
2719 2773
2720 SetContentsScaleOnBothLayers(contents_scale, 2774 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2721 device_scale,
2722 page_scale,
2723 maximum_animation_scale, 2775 maximum_animation_scale,
2724 animating_transform); 2776 starting_animation_scale, animating_transform);
2725 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 11.f); 2777 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 11.f);
2726 2778
2727 // When animating with a maxmium animation scale factor that is so large 2779 // When animating with a maxmium animation scale factor that is so large
2728 // that the layer grows larger than the viewport at this scale, and where 2780 // that the layer grows larger than the viewport at this scale, and where
2729 // the intial source scale is < 1, a new high-res tiling should get created 2781 // the intial source scale is < 1, a new high-res tiling should get created
2730 // at source scale 1. 2782 // at source scale 1.
2731 animating_transform = true; 2783 animating_transform = true;
2732 contents_scale = 0.1f; 2784 contents_scale = 0.1f;
2733 maximum_animation_scale = 11.f; 2785 maximum_animation_scale = 11.f;
2734 2786
2735 SetContentsScaleOnBothLayers(contents_scale, 2787 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2736 device_scale,
2737 page_scale,
2738 maximum_animation_scale, 2788 maximum_animation_scale,
2739 animating_transform); 2789 starting_animation_scale, animating_transform);
2740 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), device_scale * page_scale); 2790 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), device_scale * page_scale);
2741 2791
2742 // Once we stop animating, a new high-res tiling should be created. 2792 // Once we stop animating, a new high-res tiling should be created.
2743 animating_transform = false; 2793 animating_transform = false;
2744 contents_scale = 12.f; 2794 contents_scale = 12.f;
2745 2795
2746 SetContentsScaleOnBothLayers(contents_scale, 2796 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2747 device_scale,
2748 page_scale,
2749 maximum_animation_scale, 2797 maximum_animation_scale,
2750 animating_transform); 2798 starting_animation_scale, animating_transform);
2751 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 12.f); 2799 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 12.f);
2752 2800
2753 // When animating toward a smaller scale, but that is still so large that the 2801 // When animating toward a smaller scale, but that is still so large that the
2754 // layer grows larger than the viewport at this scale, a new high-res tiling 2802 // layer grows larger than the viewport at this scale, a new high-res tiling
2755 // should get created at source scale 1. 2803 // should get created at source scale 1.
2756 animating_transform = true; 2804 animating_transform = true;
2757 contents_scale = 11.f; 2805 contents_scale = 11.f;
2758 maximum_animation_scale = 11.f; 2806 maximum_animation_scale = 11.f;
2759 2807
2760 SetContentsScaleOnBothLayers(contents_scale, 2808 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2761 device_scale,
2762 page_scale,
2763 maximum_animation_scale, 2809 maximum_animation_scale,
2764 animating_transform); 2810 starting_animation_scale, animating_transform);
2765 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), device_scale * page_scale); 2811 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), device_scale * page_scale);
2766 2812
2767 // Once we stop animating, a new high-res tiling should be created. 2813 // Once we stop animating, a new high-res tiling should be created.
2768 animating_transform = false; 2814 animating_transform = false;
2769 contents_scale = 11.f; 2815 contents_scale = 11.f;
2770 2816
2771 SetContentsScaleOnBothLayers(contents_scale, 2817 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2772 device_scale,
2773 page_scale,
2774 maximum_animation_scale, 2818 maximum_animation_scale,
2775 animating_transform); 2819 starting_animation_scale, animating_transform);
2776 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 11.f); 2820 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 11.f);
2777 } 2821 }
2778 2822
2779 TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForGpuRasterization) { 2823 TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForGpuRasterization) {
2780 gfx::Size layer_bounds(100, 100); 2824 gfx::Size layer_bounds(100, 100);
2781 gfx::Size viewport_size(1000, 1000); 2825 gfx::Size viewport_size(1000, 1000);
2782 SetupDefaultTrees(layer_bounds); 2826 SetupDefaultTrees(layer_bounds);
2783 host_impl_.SetViewportSize(viewport_size); 2827 host_impl_.SetViewportSize(viewport_size);
2784 host_impl_.SetUseGpuRasterization(true); 2828 host_impl_.SetUseGpuRasterization(true);
2785 2829
2786 float contents_scale = 1.f; 2830 float contents_scale = 1.f;
2787 float device_scale = 1.3f; 2831 float device_scale = 1.3f;
2788 float page_scale = 1.4f; 2832 float page_scale = 1.4f;
2789 float maximum_animation_scale = 1.f; 2833 float maximum_animation_scale = 1.f;
2834 float starting_animation_scale = 0.f;
2790 bool animating_transform = false; 2835 bool animating_transform = false;
2791 2836
2792 SetContentsScaleOnBothLayers(contents_scale, 2837 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2793 device_scale,
2794 page_scale,
2795 maximum_animation_scale, 2838 maximum_animation_scale,
2796 animating_transform); 2839 starting_animation_scale, animating_transform);
2797 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f); 2840 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
2798 2841
2799 // Since we're GPU-rasterizing, starting an animation should cause tiling 2842 // Since we're GPU-rasterizing, starting an animation should cause tiling
2800 // resolution to get set to the current contents scale. 2843 // resolution to get set to the current contents scale.
2801 animating_transform = true; 2844 animating_transform = true;
2802 contents_scale = 2.f; 2845 contents_scale = 2.f;
2803 maximum_animation_scale = 4.f; 2846 maximum_animation_scale = 4.f;
2804 2847
2805 SetContentsScaleOnBothLayers(contents_scale, 2848 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2806 device_scale,
2807 page_scale,
2808 maximum_animation_scale, 2849 maximum_animation_scale,
2809 animating_transform); 2850 starting_animation_scale, animating_transform);
2810 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 2851 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
2811 2852
2812 // Further changes to scale during the animation should cause a new high-res 2853 // Further changes to scale during the animation should cause a new high-res
2813 // tiling to get created. 2854 // tiling to get created.
2814 contents_scale = 3.f; 2855 contents_scale = 3.f;
2815 2856
2816 SetContentsScaleOnBothLayers(contents_scale, 2857 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2817 device_scale,
2818 page_scale,
2819 maximum_animation_scale, 2858 maximum_animation_scale,
2820 animating_transform); 2859 starting_animation_scale, animating_transform);
2821 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f); 2860 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f);
2822 2861
2823 // Since we're re-rasterizing during the animation, scales smaller than 1 2862 // Since we're re-rasterizing during the animation, scales smaller than 1
2824 // should be respected. 2863 // should be respected.
2825 contents_scale = 0.25f; 2864 contents_scale = 0.25f;
2826 2865
2827 SetContentsScaleOnBothLayers(contents_scale, 2866 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2828 device_scale,
2829 page_scale,
2830 maximum_animation_scale, 2867 maximum_animation_scale,
2831 animating_transform); 2868 starting_animation_scale, animating_transform);
2832 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 0.25f); 2869 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 0.25f);
2833 2870
2834 // Once we stop animating, a new high-res tiling should be created. 2871 // Once we stop animating, a new high-res tiling should be created.
2835 contents_scale = 4.f; 2872 contents_scale = 4.f;
2836 animating_transform = false; 2873 animating_transform = false;
2837 2874
2838 SetContentsScaleOnBothLayers(contents_scale, 2875 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
2839 device_scale,
2840 page_scale,
2841 maximum_animation_scale, 2876 maximum_animation_scale,
2842 animating_transform); 2877 starting_animation_scale, animating_transform);
2843 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); 2878 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
2844 } 2879 }
2845 2880
2846 TEST_F(PictureLayerImplTest, TilingSetRasterQueue) { 2881 TEST_F(PictureLayerImplTest, TilingSetRasterQueue) {
2847 base::TimeTicks time_ticks; 2882 base::TimeTicks time_ticks;
2848 time_ticks += base::TimeDelta::FromMilliseconds(1); 2883 time_ticks += base::TimeDelta::FromMilliseconds(1);
2849 host_impl_.SetCurrentBeginFrameArgs( 2884 host_impl_.SetCurrentBeginFrameArgs(
2850 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); 2885 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
2851 2886
2852 host_impl_.SetViewportSize(gfx::Size(500, 500)); 2887 host_impl_.SetViewportSize(gfx::Size(500, 500));
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
3256 TEST_F(PictureLayerImplTest, RasterScaleChangeWithoutAnimation) { 3291 TEST_F(PictureLayerImplTest, RasterScaleChangeWithoutAnimation) {
3257 gfx::Size tile_size(host_impl_.settings().default_tile_size); 3292 gfx::Size tile_size(host_impl_.settings().default_tile_size);
3258 SetupDefaultTrees(tile_size); 3293 SetupDefaultTrees(tile_size);
3259 3294
3260 ResetTilingsAndRasterScales(); 3295 ResetTilingsAndRasterScales();
3261 3296
3262 float contents_scale = 2.f; 3297 float contents_scale = 2.f;
3263 float device_scale = 1.f; 3298 float device_scale = 1.f;
3264 float page_scale = 1.f; 3299 float page_scale = 1.f;
3265 float maximum_animation_scale = 1.f; 3300 float maximum_animation_scale = 1.f;
3301 float starting_animation_scale = 0.f;
3266 bool animating_transform = false; 3302 bool animating_transform = false;
3267 3303
3268 SetContentsScaleOnBothLayers(contents_scale, 3304 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
3269 device_scale,
3270 page_scale,
3271 maximum_animation_scale, 3305 maximum_animation_scale,
3272 animating_transform); 3306 starting_animation_scale, animating_transform);
3273 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 3307 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
3274 3308
3275 // Changing the source scale without being in an animation will cause 3309 // Changing the source scale without being in an animation will cause
3276 // the layer to reset its source scale to 1.f. 3310 // the layer to reset its source scale to 1.f.
3277 contents_scale = 3.f; 3311 contents_scale = 3.f;
3278 3312
3279 SetContentsScaleOnBothLayers(contents_scale, 3313 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
3280 device_scale,
3281 page_scale,
3282 maximum_animation_scale, 3314 maximum_animation_scale,
3283 animating_transform); 3315 starting_animation_scale, animating_transform);
3284 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f); 3316 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
3285 3317
3286 // Further changes to the source scale will no longer be reflected in the 3318 // Further changes to the source scale will no longer be reflected in the
3287 // contents scale. 3319 // contents scale.
3288 contents_scale = 0.5f; 3320 contents_scale = 0.5f;
3289 3321
3290 SetContentsScaleOnBothLayers(contents_scale, 3322 SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
3291 device_scale,
3292 page_scale,
3293 maximum_animation_scale, 3323 maximum_animation_scale,
3294 animating_transform); 3324 starting_animation_scale, animating_transform);
3295 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f); 3325 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
3296 } 3326 }
3297 3327
3298 TEST_F(PictureLayerImplTest, LowResReadyToDrawNotEnoughToActivate) { 3328 TEST_F(PictureLayerImplTest, LowResReadyToDrawNotEnoughToActivate) {
3299 gfx::Size tile_size(100, 100); 3329 gfx::Size tile_size(100, 100);
3300 gfx::Size layer_bounds(1000, 1000); 3330 gfx::Size layer_bounds(1000, 1000);
3301 3331
3302 // Make sure pending tree has tiles. 3332 // Make sure pending tree has tiles.
3303 gfx::Rect invalidation(gfx::Point(50, 50), tile_size); 3333 gfx::Rect invalidation(gfx::Point(50, 50), tile_size);
3304 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, invalidation); 3334 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, invalidation);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
3394 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; 3424 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
3395 EXPECT_LT(low_res_factor, 1.f); 3425 EXPECT_LT(low_res_factor, 1.f);
3396 3426
3397 ResetTilingsAndRasterScales(); 3427 ResetTilingsAndRasterScales();
3398 3428
3399 SetupDrawPropertiesAndUpdateTiles(active_layer_, 3429 SetupDrawPropertiesAndUpdateTiles(active_layer_,
3400 6.f, // ideal contents scale 3430 6.f, // ideal contents scale
3401 3.f, // device scale 3431 3.f, // device scale
3402 2.f, // page scale 3432 2.f, // page scale
3403 1.f, // maximum animation scale 3433 1.f, // maximum animation scale
3434 0.f, // starting animation scale
3404 false); 3435 false);
3405 ASSERT_EQ(1u, active_layer_->tilings()->num_tilings()); 3436 ASSERT_EQ(1u, active_layer_->tilings()->num_tilings());
3406 EXPECT_FLOAT_EQ(6.f, 3437 EXPECT_FLOAT_EQ(6.f,
3407 active_layer_->tilings()->tiling_at(0)->contents_scale()); 3438 active_layer_->tilings()->tiling_at(0)->contents_scale());
3408 3439
3409 // If we change the page scale factor, then we should get new tilings. 3440 // If we change the page scale factor, then we should get new tilings.
3410 SetupDrawPropertiesAndUpdateTiles(active_layer_, 3441 SetupDrawPropertiesAndUpdateTiles(active_layer_,
3411 6.6f, // ideal contents scale 3442 6.6f, // ideal contents scale
3412 3.f, // device scale 3443 3.f, // device scale
3413 2.2f, // page scale 3444 2.2f, // page scale
3414 1.f, // maximum animation scale 3445 1.f, // maximum animation scale
3446 0.f, // starting animation scale
3415 false); 3447 false);
3416 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); 3448 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
3417 EXPECT_FLOAT_EQ(6.6f, 3449 EXPECT_FLOAT_EQ(6.6f,
3418 active_layer_->tilings()->tiling_at(0)->contents_scale()); 3450 active_layer_->tilings()->tiling_at(0)->contents_scale());
3419 3451
3420 // If we change the device scale factor, then we should get new tilings. 3452 // If we change the device scale factor, then we should get new tilings.
3421 SetupDrawPropertiesAndUpdateTiles(active_layer_, 3453 SetupDrawPropertiesAndUpdateTiles(active_layer_,
3422 7.26f, // ideal contents scale 3454 7.26f, // ideal contents scale
3423 3.3f, // device scale 3455 3.3f, // device scale
3424 2.2f, // page scale 3456 2.2f, // page scale
3425 1.f, // maximum animation scale 3457 1.f, // maximum animation scale
3458 0.f, // starting animation scale
3426 false); 3459 false);
3427 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings()); 3460 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings());
3428 EXPECT_FLOAT_EQ(7.26f, 3461 EXPECT_FLOAT_EQ(7.26f,
3429 active_layer_->tilings()->tiling_at(0)->contents_scale()); 3462 active_layer_->tilings()->tiling_at(0)->contents_scale());
3430 3463
3431 // If we change the device scale factor, but end up at the same total scale 3464 // If we change the device scale factor, but end up at the same total scale
3432 // factor somehow, then we don't get new tilings. 3465 // factor somehow, then we don't get new tilings.
3433 SetupDrawPropertiesAndUpdateTiles(active_layer_, 3466 SetupDrawPropertiesAndUpdateTiles(active_layer_,
3434 7.26f, // ideal contents scale 3467 7.26f, // ideal contents scale
3435 2.2f, // device scale 3468 2.2f, // device scale
3436 3.3f, // page scale 3469 3.3f, // page scale
3437 1.f, // maximum animation scale 3470 1.f, // maximum animation scale
3471 0.f, // starting animation scale
3438 false); 3472 false);
3439 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings()); 3473 ASSERT_EQ(3u, active_layer_->tilings()->num_tilings());
3440 EXPECT_FLOAT_EQ(7.26f, 3474 EXPECT_FLOAT_EQ(7.26f,
3441 active_layer_->tilings()->tiling_at(0)->contents_scale()); 3475 active_layer_->tilings()->tiling_at(0)->contents_scale());
3442 } 3476 }
3443 3477
3444 TEST_F(NoLowResPictureLayerImplTest, PendingLayerOnlyHasHighResTiling) { 3478 TEST_F(NoLowResPictureLayerImplTest, PendingLayerOnlyHasHighResTiling) {
3445 gfx::Size tile_size(400, 400); 3479 gfx::Size tile_size(400, 400);
3446 gfx::Size layer_bounds(1300, 1900); 3480 gfx::Size layer_bounds(1300, 1900);
3447 3481
3448 scoped_refptr<FakePicturePileImpl> pending_pile = 3482 scoped_refptr<FakePicturePileImpl> pending_pile =
3449 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3483 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3450 scoped_refptr<FakePicturePileImpl> active_pile = 3484 scoped_refptr<FakePicturePileImpl> active_pile =
3451 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3485 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3452 3486
3453 SetupTrees(pending_pile, active_pile); 3487 SetupTrees(pending_pile, active_pile);
3454 3488
3455 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; 3489 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
3456 EXPECT_LT(low_res_factor, 1.f); 3490 EXPECT_LT(low_res_factor, 1.f);
3457 3491
3458 ResetTilingsAndRasterScales(); 3492 ResetTilingsAndRasterScales();
3459 3493
3460 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 3494 SetupDrawPropertiesAndUpdateTiles(pending_layer_,
3461 6.f, // ideal contents scale 3495 6.f, // ideal contents scale
3462 3.f, // device scale 3496 3.f, // device scale
3463 2.f, // page scale 3497 2.f, // page scale
3464 1.f, // maximum animation scale 3498 1.f, // maximum animation scale
3499 0.f, // starting animation scale
3465 false); 3500 false);
3466 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); 3501 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings());
3467 EXPECT_FLOAT_EQ(6.f, 3502 EXPECT_FLOAT_EQ(6.f,
3468 pending_layer_->tilings()->tiling_at(0)->contents_scale()); 3503 pending_layer_->tilings()->tiling_at(0)->contents_scale());
3469 3504
3470 // If we change the page scale factor, then we should get new tilings. 3505 // If we change the page scale factor, then we should get new tilings.
3471 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 3506 SetupDrawPropertiesAndUpdateTiles(pending_layer_,
3472 6.6f, // ideal contents scale 3507 6.6f, // ideal contents scale
3473 3.f, // device scale 3508 3.f, // device scale
3474 2.2f, // page scale 3509 2.2f, // page scale
3475 1.f, // maximum animation scale 3510 1.f, // maximum animation scale
3511 0.f, // starting animation scale
3476 false); 3512 false);
3477 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); 3513 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings());
3478 EXPECT_FLOAT_EQ(6.6f, 3514 EXPECT_FLOAT_EQ(6.6f,
3479 pending_layer_->tilings()->tiling_at(0)->contents_scale()); 3515 pending_layer_->tilings()->tiling_at(0)->contents_scale());
3480 3516
3481 // If we change the device scale factor, then we should get new tilings. 3517 // If we change the device scale factor, then we should get new tilings.
3482 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 3518 SetupDrawPropertiesAndUpdateTiles(pending_layer_,
3483 7.26f, // ideal contents scale 3519 7.26f, // ideal contents scale
3484 3.3f, // device scale 3520 3.3f, // device scale
3485 2.2f, // page scale 3521 2.2f, // page scale
3486 1.f, // maximum animation scale 3522 1.f, // maximum animation scale
3523 0.f, // starting animation scale
3487 false); 3524 false);
3488 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); 3525 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings());
3489 EXPECT_FLOAT_EQ(7.26f, 3526 EXPECT_FLOAT_EQ(7.26f,
3490 pending_layer_->tilings()->tiling_at(0)->contents_scale()); 3527 pending_layer_->tilings()->tiling_at(0)->contents_scale());
3491 3528
3492 // If we change the device scale factor, but end up at the same total scale 3529 // If we change the device scale factor, but end up at the same total scale
3493 // factor somehow, then we don't get new tilings. 3530 // factor somehow, then we don't get new tilings.
3494 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 3531 SetupDrawPropertiesAndUpdateTiles(pending_layer_,
3495 7.26f, // ideal contents scale 3532 7.26f, // ideal contents scale
3496 2.2f, // device scale 3533 2.2f, // device scale
3497 3.3f, // page scale 3534 3.3f, // page scale
3498 1.f, // maximum animation scale 3535 1.f, // maximum animation scale
3536 0.f, // starting animation scale
3499 false); 3537 false);
3500 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); 3538 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings());
3501 EXPECT_FLOAT_EQ(7.26f, 3539 EXPECT_FLOAT_EQ(7.26f,
3502 pending_layer_->tilings()->tiling_at(0)->contents_scale()); 3540 pending_layer_->tilings()->tiling_at(0)->contents_scale());
3503 } 3541 }
3504 3542
3505 TEST_F(NoLowResPictureLayerImplTest, AllHighResRequiredEvenIfNotChanged) { 3543 TEST_F(NoLowResPictureLayerImplTest, AllHighResRequiredEvenIfNotChanged) {
3506 gfx::Size layer_bounds(400, 400); 3544 gfx::Size layer_bounds(400, 400);
3507 gfx::Size tile_size(100, 100); 3545 gfx::Size tile_size(100, 100);
3508 3546
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
3569 gfx::Size tile_size(100, 100); 3607 gfx::Size tile_size(100, 100);
3570 gfx::Size layer_bounds(400, 400); 3608 gfx::Size layer_bounds(400, 400);
3571 3609
3572 scoped_refptr<FakePicturePileImpl> pending_pile = 3610 scoped_refptr<FakePicturePileImpl> pending_pile =
3573 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3611 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3574 scoped_refptr<FakePicturePileImpl> active_pile = 3612 scoped_refptr<FakePicturePileImpl> active_pile =
3575 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3613 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3576 3614
3577 SetupTreesWithInvalidation(pending_pile, active_pile, Region()); 3615 SetupTreesWithInvalidation(pending_pile, active_pile, Region());
3578 3616
3579 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); 3617 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
3618 false);
3580 3619
3581 // UpdateTiles with valid viewport. Should update tile viewport. 3620 // UpdateTiles with valid viewport. Should update tile viewport.
3582 // Note viewport is considered invalid if and only if in resourceless 3621 // Note viewport is considered invalid if and only if in resourceless
3583 // software draw. 3622 // software draw.
3584 bool resourceless_software_draw = false; 3623 bool resourceless_software_draw = false;
3585 gfx::Rect viewport = gfx::Rect(layer_bounds); 3624 gfx::Rect viewport = gfx::Rect(layer_bounds);
3586 gfx::Transform transform; 3625 gfx::Transform transform;
3587 host_impl_.SetExternalDrawConstraints(transform, 3626 host_impl_.SetExternalDrawConstraints(transform,
3588 viewport, 3627 viewport,
3589 viewport, 3628 viewport,
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
3658 3697
3659 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; 3698 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
3660 EXPECT_LT(low_res_factor, 1.f); 3699 EXPECT_LT(low_res_factor, 1.f);
3661 3700
3662 float device_scale = 1.7f; 3701 float device_scale = 1.7f;
3663 float page_scale = 3.2f; 3702 float page_scale = 3.2f;
3664 float scale = 1.f; 3703 float scale = 1.f;
3665 3704
3666 ResetTilingsAndRasterScales(); 3705 ResetTilingsAndRasterScales();
3667 3706
3668 SetContentsScaleOnBothLayers(scale, device_scale, page_scale, 1.f, false); 3707 SetContentsScaleOnBothLayers(scale, device_scale, page_scale, 1.f, 0.f,
3708 false);
3669 ASSERT_EQ(1u, active_layer_->tilings()->num_tilings()); 3709 ASSERT_EQ(1u, active_layer_->tilings()->num_tilings());
3670 3710
3671 // Ensure UpdateTiles won't remove any tilings. Note this is unrelated to 3711 // Ensure UpdateTiles won't remove any tilings. Note this is unrelated to
3672 // |used_tilings| variable, and it's here only to ensure that active_layer_ 3712 // |used_tilings| variable, and it's here only to ensure that active_layer_
3673 // won't remove tilings before the test has a chance to verify behavior. 3713 // won't remove tilings before the test has a chance to verify behavior.
3674 active_layer_->MarkAllTilingsUsed(); 3714 active_layer_->MarkAllTilingsUsed();
3675 3715
3676 // We only have ideal tilings, so they aren't removed. 3716 // We only have ideal tilings, so they aren't removed.
3677 used_tilings.clear(); 3717 used_tilings.clear();
3678 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 3718 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
3679 ASSERT_EQ(1u, active_layer_->tilings()->num_tilings()); 3719 ASSERT_EQ(1u, active_layer_->tilings()->num_tilings());
3680 3720
3681 host_impl_.PinchGestureBegin(); 3721 host_impl_.PinchGestureBegin();
3682 3722
3683 // Changing the ideal but not creating new tilings. 3723 // Changing the ideal but not creating new tilings.
3684 scale *= 1.5f; 3724 scale *= 1.5f;
3685 page_scale *= 1.5f; 3725 page_scale *= 1.5f;
3686 SetContentsScaleOnBothLayers(scale, device_scale, page_scale, 1.f, false); 3726 SetContentsScaleOnBothLayers(scale, device_scale, page_scale, 1.f, 0.f,
3727 false);
3687 ASSERT_EQ(1u, active_layer_->tilings()->num_tilings()); 3728 ASSERT_EQ(1u, active_layer_->tilings()->num_tilings());
3688 3729
3689 // The tilings are still our target scale, so they aren't removed. 3730 // The tilings are still our target scale, so they aren't removed.
3690 used_tilings.clear(); 3731 used_tilings.clear();
3691 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 3732 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
3692 ASSERT_EQ(1u, active_layer_->tilings()->num_tilings()); 3733 ASSERT_EQ(1u, active_layer_->tilings()->num_tilings());
3693 3734
3694 host_impl_.PinchGestureEnd(); 3735 host_impl_.PinchGestureEnd();
3695 3736
3696 // Create a 1.2 scale tiling. Now we have 1.0 and 1.2 tilings. Ideal = 1.2. 3737 // Create a 1.2 scale tiling. Now we have 1.0 and 1.2 tilings. Ideal = 1.2.
3697 scale /= 4.f; 3738 scale /= 4.f;
3698 page_scale /= 4.f; 3739 page_scale /= 4.f;
3699 SetContentsScaleOnBothLayers(1.2f, device_scale, page_scale, 1.f, false); 3740 SetContentsScaleOnBothLayers(1.2f, device_scale, page_scale, 1.f, 0.f, false);
3700 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); 3741 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
3701 EXPECT_FLOAT_EQ(1.f, 3742 EXPECT_FLOAT_EQ(1.f,
3702 active_layer_->tilings()->tiling_at(1)->contents_scale()); 3743 active_layer_->tilings()->tiling_at(1)->contents_scale());
3703 3744
3704 // Ensure UpdateTiles won't remove any tilings. 3745 // Ensure UpdateTiles won't remove any tilings.
3705 active_layer_->MarkAllTilingsUsed(); 3746 active_layer_->MarkAllTilingsUsed();
3706 3747
3707 // Mark the non-ideal tilings as used. They won't be removed. 3748 // Mark the non-ideal tilings as used. They won't be removed.
3708 used_tilings.clear(); 3749 used_tilings.clear();
3709 used_tilings.push_back(active_layer_->tilings()->tiling_at(1)); 3750 used_tilings.push_back(active_layer_->tilings()->tiling_at(1));
3710 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 3751 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
3711 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); 3752 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
3712 3753
3713 // Now move the ideal scale to 0.5. Our target stays 1.2. 3754 // Now move the ideal scale to 0.5. Our target stays 1.2.
3714 SetContentsScaleOnBothLayers(0.5f, device_scale, page_scale, 1.f, false); 3755 SetContentsScaleOnBothLayers(0.5f, device_scale, page_scale, 1.f, 0.f, false);
3715 3756
3716 // The high resolution tiling is between target and ideal, so is not 3757 // The high resolution tiling is between target and ideal, so is not
3717 // removed. The low res tiling for the old ideal=1.0 scale is removed. 3758 // removed. The low res tiling for the old ideal=1.0 scale is removed.
3718 used_tilings.clear(); 3759 used_tilings.clear();
3719 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 3760 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
3720 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); 3761 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
3721 3762
3722 // Now move the ideal scale to 1.0. Our target stays 1.2. 3763 // Now move the ideal scale to 1.0. Our target stays 1.2.
3723 SetContentsScaleOnBothLayers(1.f, device_scale, page_scale, 1.f, false); 3764 SetContentsScaleOnBothLayers(1.f, device_scale, page_scale, 1.f, 0.f, false);
3724 3765
3725 // All the tilings are between are target and the ideal, so they are not 3766 // All the tilings are between are target and the ideal, so they are not
3726 // removed. 3767 // removed.
3727 used_tilings.clear(); 3768 used_tilings.clear();
3728 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 3769 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
3729 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); 3770 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
3730 3771
3731 // Now move the ideal scale to 1.1 on the active layer. Our target stays 1.2. 3772 // Now move the ideal scale to 1.1 on the active layer. Our target stays 1.2.
3732 SetupDrawPropertiesAndUpdateTiles( 3773 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.1f, device_scale,
3733 active_layer_, 1.1f, device_scale, page_scale, 1.f, false); 3774 page_scale, 1.f, 0.f, false);
3734 3775
3735 // Because the pending layer's ideal scale is still 1.0, our tilings fall 3776 // Because the pending layer's ideal scale is still 1.0, our tilings fall
3736 // in the range [1.0,1.2] and are kept. 3777 // in the range [1.0,1.2] and are kept.
3737 used_tilings.clear(); 3778 used_tilings.clear();
3738 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 3779 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
3739 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); 3780 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
3740 3781
3741 // Move the ideal scale on the pending layer to 1.1 as well. Our target stays 3782 // Move the ideal scale on the pending layer to 1.1 as well. Our target stays
3742 // 1.2 still. 3783 // 1.2 still.
3743 SetupDrawPropertiesAndUpdateTiles( 3784 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.1f, device_scale,
3744 pending_layer_, 1.1f, device_scale, page_scale, 1.f, false); 3785 page_scale, 1.f, 0.f, false);
3745 3786
3746 // Our 1.0 tiling now falls outside the range between our ideal scale and our 3787 // Our 1.0 tiling now falls outside the range between our ideal scale and our
3747 // target raster scale. But it is in our used tilings set, so nothing is 3788 // target raster scale. But it is in our used tilings set, so nothing is
3748 // deleted. 3789 // deleted.
3749 used_tilings.clear(); 3790 used_tilings.clear();
3750 used_tilings.push_back(active_layer_->tilings()->tiling_at(1)); 3791 used_tilings.push_back(active_layer_->tilings()->tiling_at(1));
3751 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings); 3792 active_layer_->CleanUpTilingsOnActiveLayer(used_tilings);
3752 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); 3793 ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
3753 3794
3754 // If we remove it from our used tilings set, it is outside the range to keep 3795 // If we remove it from our used tilings set, it is outside the range to keep
(...skipping 25 matching lines...) Expand all
3780 EXPECT_FALSE(pending_layer_->tilings()); 3821 EXPECT_FALSE(pending_layer_->tilings());
3781 pending_layer_->RecreateResources(); 3822 pending_layer_->RecreateResources();
3782 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); 3823 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings());
3783 3824
3784 // This should create new tilings. 3825 // This should create new tilings.
3785 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 3826 SetupDrawPropertiesAndUpdateTiles(pending_layer_,
3786 1.3f, // ideal contents scale 3827 1.3f, // ideal contents scale
3787 2.7f, // device scale 3828 2.7f, // device scale
3788 3.2f, // page scale 3829 3.2f, // page scale
3789 1.f, // maximum animation scale 3830 1.f, // maximum animation scale
3831 0.f, // starting animation scale
3790 false); 3832 false);
3791 EXPECT_EQ(1u, pending_layer_->tilings()->num_tilings()); 3833 EXPECT_EQ(1u, pending_layer_->tilings()->num_tilings());
3792 } 3834 }
3793 3835
3794 TEST_F(PictureLayerImplTest, SharedQuadStateContainsMaxTilingScale) { 3836 TEST_F(PictureLayerImplTest, SharedQuadStateContainsMaxTilingScale) {
3795 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 3837 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
3796 3838
3797 gfx::Size tile_size(400, 400); 3839 gfx::Size tile_size(400, 400);
3798 gfx::Size layer_bounds(1000, 2000); 3840 gfx::Size layer_bounds(1000, 2000);
3799 3841
3800 host_impl_.SetViewportSize(gfx::Size(10000, 20000)); 3842 host_impl_.SetViewportSize(gfx::Size(10000, 20000));
3801 3843
3802 scoped_refptr<FakePicturePileImpl> pending_pile = 3844 scoped_refptr<FakePicturePileImpl> pending_pile =
3803 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3845 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3804 scoped_refptr<FakePicturePileImpl> active_pile = 3846 scoped_refptr<FakePicturePileImpl> active_pile =
3805 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3847 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3806 3848
3807 SetupTrees(pending_pile, active_pile); 3849 SetupTrees(pending_pile, active_pile);
3808 3850
3809 ResetTilingsAndRasterScales(); 3851 ResetTilingsAndRasterScales();
3810 SetupDrawPropertiesAndUpdateTiles(active_layer_, 2.5f, 1.f, 1.f, 1.f, false); 3852 SetupDrawPropertiesAndUpdateTiles(active_layer_, 2.5f, 1.f, 1.f, 1.f, 0.f,
3853 false);
3811 3854
3812 float max_contents_scale = active_layer_->MaximumTilingContentsScale(); 3855 float max_contents_scale = active_layer_->MaximumTilingContentsScale();
3813 EXPECT_EQ(2.5f, max_contents_scale); 3856 EXPECT_EQ(2.5f, max_contents_scale);
3814 3857
3815 gfx::Transform scaled_draw_transform = active_layer_->draw_transform(); 3858 gfx::Transform scaled_draw_transform = active_layer_->draw_transform();
3816 scaled_draw_transform.Scale(SK_MScalar1 / max_contents_scale, 3859 scaled_draw_transform.Scale(SK_MScalar1 / max_contents_scale,
3817 SK_MScalar1 / max_contents_scale); 3860 SK_MScalar1 / max_contents_scale);
3818 3861
3819 AppendQuadsData data; 3862 AppendQuadsData data;
3820 active_layer_->AppendQuads(render_pass.get(), &data); 3863 active_layer_->AppendQuads(render_pass.get(), &data);
(...skipping 868 matching lines...) Expand 10 before | Expand all | Expand 10 after
4689 4732
4690 Region invalidation; 4733 Region invalidation;
4691 gfx::Rect viewport = gfx::Rect(0, 0, 100, 100); 4734 gfx::Rect viewport = gfx::Rect(0, 0, 100, 100);
4692 gfx::Transform transform; 4735 gfx::Transform transform;
4693 4736
4694 host_impl_.SetRequiresHighResToDraw(); 4737 host_impl_.SetRequiresHighResToDraw();
4695 4738
4696 // Update tiles. 4739 // Update tiles.
4697 pending_layer_->draw_properties().visible_content_rect = viewport; 4740 pending_layer_->draw_properties().visible_content_rect = viewport;
4698 pending_layer_->draw_properties().screen_space_transform = transform; 4741 pending_layer_->draw_properties().screen_space_transform = transform;
4699 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, false); 4742 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
4743 false);
4700 pending_layer_->HighResTiling()->UpdateAllTilePrioritiesForTesting(); 4744 pending_layer_->HighResTiling()->UpdateAllTilePrioritiesForTesting();
4701 4745
4702 // Ensure we can't activate. 4746 // Ensure we can't activate.
4703 EXPECT_FALSE(host_impl_.tile_manager()->IsReadyToActivate()); 4747 EXPECT_FALSE(host_impl_.tile_manager()->IsReadyToActivate());
4704 4748
4705 // Now in the same frame, move the viewport (this can happen during 4749 // Now in the same frame, move the viewport (this can happen during
4706 // animation). 4750 // animation).
4707 viewport = gfx::Rect(0, 2000, 100, 100); 4751 viewport = gfx::Rect(0, 2000, 100, 100);
4708 4752
4709 // Update tiles. 4753 // Update tiles.
4710 pending_layer_->draw_properties().visible_content_rect = viewport; 4754 pending_layer_->draw_properties().visible_content_rect = viewport;
4711 pending_layer_->draw_properties().screen_space_transform = transform; 4755 pending_layer_->draw_properties().screen_space_transform = transform;
4712 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, false); 4756 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
4757 false);
4713 pending_layer_->HighResTiling()->UpdateAllTilePrioritiesForTesting(); 4758 pending_layer_->HighResTiling()->UpdateAllTilePrioritiesForTesting();
4714 4759
4715 // Make sure all viewport tiles (viewport from the tiling) are ready to draw. 4760 // Make sure all viewport tiles (viewport from the tiling) are ready to draw.
4716 std::vector<Tile*> tiles; 4761 std::vector<Tile*> tiles;
4717 for (PictureLayerTiling::CoverageIterator iter( 4762 for (PictureLayerTiling::CoverageIterator iter(
4718 pending_layer_->HighResTiling(), 4763 pending_layer_->HighResTiling(),
4719 1.f, 4764 1.f,
4720 pending_layer_->HighResTiling()->GetCurrentVisibleRectForTesting()); 4765 pending_layer_->HighResTiling()->GetCurrentVisibleRectForTesting());
4721 iter; 4766 iter;
4722 ++iter) { 4767 ++iter) {
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
4957 result = layer->CalculateTileSize(gfx::Size(447, 400)); 5002 result = layer->CalculateTileSize(gfx::Size(447, 400));
4958 EXPECT_EQ(result.width(), 448); 5003 EXPECT_EQ(result.width(), 448);
4959 EXPECT_EQ(result.height(), 448); 5004 EXPECT_EQ(result.height(), 448);
4960 result = layer->CalculateTileSize(gfx::Size(500, 499)); 5005 result = layer->CalculateTileSize(gfx::Size(500, 499));
4961 EXPECT_EQ(result.width(), 512); 5006 EXPECT_EQ(result.width(), 512);
4962 EXPECT_EQ(result.height(), 500 + 2); 5007 EXPECT_EQ(result.height(), 500 + 2);
4963 } 5008 }
4964 5009
4965 } // namespace 5010 } // namespace
4966 } // namespace cc 5011 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/test/animation_test_common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698