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

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

Issue 642983003: cc: Make PictureLayerImpl use a better choice for animated raster scale. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: animationscale: fixtest Created 6 years, 2 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 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after
1088 page_scale, 1088 page_scale,
1089 maximum_animation_scale, 1089 maximum_animation_scale,
1090 animating_transform); 1090 animating_transform);
1091 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f); 1091 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
1092 EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), low_res_factor); 1092 EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), low_res_factor);
1093 EXPECT_BOTH_EQ(num_tilings(), 2u); 1093 EXPECT_BOTH_EQ(num_tilings(), 2u);
1094 1094
1095 // Page scale animation, new high res, but not new low res because animating. 1095 // Page scale animation, new high res, but not new low res because animating.
1096 contents_scale = 2.f; 1096 contents_scale = 2.f;
1097 page_scale = 2.f; 1097 page_scale = 2.f;
1098 maximum_animation_scale = 2.f;
1098 animating_transform = true; 1099 animating_transform = true;
1099 SetContentsScaleOnBothLayers(contents_scale, 1100 SetContentsScaleOnBothLayers(contents_scale,
1100 device_scale, 1101 device_scale,
1101 page_scale, 1102 page_scale,
1102 maximum_animation_scale, 1103 maximum_animation_scale,
1103 animating_transform); 1104 animating_transform);
1104 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 1105 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
1105 EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), low_res_factor); 1106 EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), low_res_factor);
1106 EXPECT_BOTH_EQ(num_tilings(), 3u); 1107 EXPECT_BOTH_EQ(num_tilings(), 3u);
1107 1108
(...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after
2373 animating_transform = false; 2374 animating_transform = false;
2374 2375
2375 SetContentsScaleOnBothLayers(contents_scale, 2376 SetContentsScaleOnBothLayers(contents_scale,
2376 device_scale, 2377 device_scale,
2377 page_scale, 2378 page_scale,
2378 maximum_animation_scale, 2379 maximum_animation_scale,
2379 animating_transform); 2380 animating_transform);
2380 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); 2381 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
2381 2382
2382 // When animating with an unknown maximum animation scale factor, a new 2383 // When animating with an unknown maximum animation scale factor, a new
2383 // high-res tiling should be created at the animation's initial scale. 2384 // high-res tiling should be created at a source scale of 1.
2384 animating_transform = true; 2385 animating_transform = true;
2385 contents_scale = 2.f; 2386 contents_scale = 2.f;
2386 maximum_animation_scale = 0.f; 2387 maximum_animation_scale = 0.f;
2387 2388
2388 SetContentsScaleOnBothLayers(contents_scale, 2389 SetContentsScaleOnBothLayers(contents_scale,
2389 device_scale, 2390 device_scale,
2390 page_scale, 2391 page_scale,
2391 maximum_animation_scale, 2392 maximum_animation_scale,
2392 animating_transform); 2393 animating_transform);
2393 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 2394 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
2394 2395
2395 // Further changes to scale during the animation should not cause a new 2396 // Further changes to scale during the animation should not cause a new
2396 // high-res tiling to get created. 2397 // high-res tiling to get created.
2397 contents_scale = 3.f; 2398 contents_scale = 3.f;
2398 2399
2399 SetContentsScaleOnBothLayers(contents_scale, 2400 SetContentsScaleOnBothLayers(contents_scale,
2400 device_scale, 2401 device_scale,
2401 page_scale, 2402 page_scale,
2402 maximum_animation_scale, 2403 maximum_animation_scale,
2403 animating_transform); 2404 animating_transform);
2404 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 2405 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
2405 2406
2406 // Once we stop animating, a new high-res tiling should be created. 2407 // Once we stop animating, a new high-res tiling should be created.
2407 animating_transform = false; 2408 animating_transform = false;
2408 contents_scale = 4.f; 2409 contents_scale = 4.f;
2409 2410
2410 SetContentsScaleOnBothLayers(contents_scale, 2411 SetContentsScaleOnBothLayers(contents_scale,
2411 device_scale, 2412 device_scale,
2412 page_scale, 2413 page_scale,
2413 maximum_animation_scale, 2414 maximum_animation_scale,
2414 animating_transform); 2415 animating_transform);
2415 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); 2416 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
2416 2417
2417 // When animating with a maxmium animation scale factor that is so large 2418 // When animating with a maxmium animation scale factor that is so large
2418 // that the layer grows larger than the viewport at this scale, a new 2419 // that the layer grows larger than the viewport at this scale, a new
2419 // high-res tiling should get created at the animation's initial scale, not 2420 // high-res tiling should get created at a source scale of 1, not at its
2420 // at its maximum scale. 2421 // maximum scale.
2421 animating_transform = true; 2422 animating_transform = true;
2422 contents_scale = 2.f; 2423 contents_scale = 2.f;
2423 maximum_animation_scale = 11.f; 2424 maximum_animation_scale = 11.f;
2424 2425
2425 SetContentsScaleOnBothLayers(contents_scale, 2426 SetContentsScaleOnBothLayers(contents_scale,
2426 device_scale, 2427 device_scale,
2427 page_scale, 2428 page_scale,
2428 maximum_animation_scale, 2429 maximum_animation_scale,
2429 animating_transform); 2430 animating_transform);
2430 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 2431 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
2431 2432
2432 // Once we stop animating, a new high-res tiling should be created. 2433 // Once we stop animating, a new high-res tiling should be created.
2433 animating_transform = false; 2434 animating_transform = false;
2434 contents_scale = 11.f; 2435 contents_scale = 11.f;
2435 2436
2436 SetContentsScaleOnBothLayers(contents_scale, 2437 SetContentsScaleOnBothLayers(contents_scale,
2437 device_scale, 2438 device_scale,
2438 page_scale, 2439 page_scale,
2439 maximum_animation_scale, 2440 maximum_animation_scale,
2440 animating_transform); 2441 animating_transform);
2441 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 11.f); 2442 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 11.f);
2442 2443
2443 // When animating with a maxmium animation scale factor that is so large 2444 // When animating with a maxmium animation scale factor that is so large
2444 // that the layer grows larger than the viewport at this scale, and where 2445 // that the layer grows larger than the viewport at this scale, and where
2445 // the intial source scale is < 1, a new high-res tiling should get created 2446 // the intial source scale is < 1, a new high-res tiling should get created
2446 // at source scale 1. 2447 // at source scale 1.
2447 animating_transform = true; 2448 animating_transform = true;
2448 contents_scale = 0.1f; 2449 contents_scale = 0.1f;
2449 maximum_animation_scale = 11.f; 2450 maximum_animation_scale = 11.f;
2450 2451
2451 SetContentsScaleOnBothLayers(contents_scale, 2452 SetContentsScaleOnBothLayers(contents_scale,
2452 device_scale, 2453 device_scale,
2453 page_scale, 2454 page_scale,
2454 maximum_animation_scale, 2455 maximum_animation_scale,
2455 animating_transform); 2456 animating_transform);
2456 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), device_scale * page_scale); 2457 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), device_scale * page_scale);
2457 2458
2458 // Once we stop animating, a new high-res tiling should be created. 2459 // Once we stop animating, a new high-res tiling should be created.
2459 animating_transform = false; 2460 animating_transform = false;
2461 contents_scale = 12.f;
2462
2463 SetContentsScaleOnBothLayers(contents_scale,
2464 device_scale,
2465 page_scale,
2466 maximum_animation_scale,
2467 animating_transform);
2468 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 12.f);
2469
2470 // When animating toward a smaller scale, but that is still so large that the
2471 // layer grows larger than the viewport at this scale, a new high-res tiling
2472 // should get created at source scale 1.
2473 animating_transform = true;
2474 contents_scale = 11.f;
2475 maximum_animation_scale = 11.f;
2476
2477 SetContentsScaleOnBothLayers(contents_scale,
2478 device_scale,
2479 page_scale,
2480 maximum_animation_scale,
2481 animating_transform);
2482 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), device_scale * page_scale);
2483
2484 // Once we stop animating, a new high-res tiling should be created.
2485 animating_transform = false;
2460 contents_scale = 11.f; 2486 contents_scale = 11.f;
2461 2487
2462 SetContentsScaleOnBothLayers(contents_scale, 2488 SetContentsScaleOnBothLayers(contents_scale,
2463 device_scale, 2489 device_scale,
2464 page_scale, 2490 page_scale,
2465 maximum_animation_scale, 2491 maximum_animation_scale,
2466 animating_transform); 2492 animating_transform);
2467 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 11.f); 2493 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 11.f);
2468 } 2494 }
2469 2495
(...skipping 2017 matching lines...) Expand 10 before | Expand all | Expand 10 after
4487 result = layer->CalculateTileSize(gfx::Size(447, 400)); 4513 result = layer->CalculateTileSize(gfx::Size(447, 400));
4488 EXPECT_EQ(result.width(), 448); 4514 EXPECT_EQ(result.width(), 448);
4489 EXPECT_EQ(result.height(), 448); 4515 EXPECT_EQ(result.height(), 448);
4490 result = layer->CalculateTileSize(gfx::Size(500, 499)); 4516 result = layer->CalculateTileSize(gfx::Size(500, 499));
4491 EXPECT_EQ(result.width(), 512); 4517 EXPECT_EQ(result.width(), 512);
4492 EXPECT_EQ(result.height(), 500); 4518 EXPECT_EQ(result.height(), 500);
4493 } 4519 }
4494 4520
4495 } // namespace 4521 } // namespace
4496 } // namespace cc 4522 } // 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