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

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: fixes 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
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 1200 matching lines...) Expand 10 before | Expand all | Expand 10 after
2308 animating_transform = false; 2309 animating_transform = false;
2309 2310
2310 SetContentsScaleOnBothLayers(contents_scale, 2311 SetContentsScaleOnBothLayers(contents_scale,
2311 device_scale, 2312 device_scale,
2312 page_scale, 2313 page_scale,
2313 maximum_animation_scale, 2314 maximum_animation_scale,
2314 animating_transform); 2315 animating_transform);
2315 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); 2316 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
2316 2317
2317 // When animating with an unknown maximum animation scale factor, a new 2318 // When animating with an unknown maximum animation scale factor, a new
2318 // high-res tiling should be created at the animation's initial scale. 2319 // high-res tiling should not be created at a source scale of 1.
ajuma 2014/10/10 13:43:07 s/not// ?
2319 animating_transform = true; 2320 animating_transform = true;
2320 contents_scale = 2.f; 2321 contents_scale = 2.f;
2321 maximum_animation_scale = 0.f; 2322 maximum_animation_scale = 0.f;
2322 2323
2323 SetContentsScaleOnBothLayers(contents_scale, 2324 SetContentsScaleOnBothLayers(contents_scale,
2324 device_scale, 2325 device_scale,
2325 page_scale, 2326 page_scale,
2326 maximum_animation_scale, 2327 maximum_animation_scale,
2327 animating_transform); 2328 animating_transform);
2328 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 2329 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
2329 2330
2330 // Further changes to scale during the animation should not cause a new 2331 // Further changes to scale during the animation should not cause a new
2331 // high-res tiling to get created. 2332 // high-res tiling to get created.
2332 contents_scale = 3.f; 2333 contents_scale = 3.f;
2333 2334
2334 SetContentsScaleOnBothLayers(contents_scale, 2335 SetContentsScaleOnBothLayers(contents_scale,
2335 device_scale, 2336 device_scale,
2336 page_scale, 2337 page_scale,
2337 maximum_animation_scale, 2338 maximum_animation_scale,
2338 animating_transform); 2339 animating_transform);
2339 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 2340 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
2340 2341
2341 // Once we stop animating, a new high-res tiling should be created. 2342 // Once we stop animating, a new high-res tiling should be created.
2342 animating_transform = false; 2343 animating_transform = false;
2343 contents_scale = 4.f; 2344 contents_scale = 4.f;
2344 2345
2345 SetContentsScaleOnBothLayers(contents_scale, 2346 SetContentsScaleOnBothLayers(contents_scale,
2346 device_scale, 2347 device_scale,
2347 page_scale, 2348 page_scale,
2348 maximum_animation_scale, 2349 maximum_animation_scale,
2349 animating_transform); 2350 animating_transform);
2350 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); 2351 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
2351 2352
2352 // When animating with a maxmium animation scale factor that is so large 2353 // When animating with a maxmium animation scale factor that is so large
2353 // that the layer grows larger than the viewport at this scale, a new 2354 // that the layer grows larger than the viewport at this scale, a new
2354 // high-res tiling should get created at the animation's initial scale, not 2355 // high-res tiling should get created at a source scale of 1, not at its
2355 // at its maximum scale. 2356 // maximum scale.
2356 animating_transform = true; 2357 animating_transform = true;
2357 contents_scale = 2.f; 2358 contents_scale = 2.f;
2358 maximum_animation_scale = 11.f; 2359 maximum_animation_scale = 11.f;
2359 2360
2360 SetContentsScaleOnBothLayers(contents_scale, 2361 SetContentsScaleOnBothLayers(contents_scale,
2361 device_scale, 2362 device_scale,
2362 page_scale, 2363 page_scale,
2363 maximum_animation_scale, 2364 maximum_animation_scale,
2364 animating_transform); 2365 animating_transform);
2365 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f); 2366 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
2366 2367
2367 // Once we stop animating, a new high-res tiling should be created. 2368 // Once we stop animating, a new high-res tiling should be created.
2368 animating_transform = false; 2369 animating_transform = false;
2369 contents_scale = 11.f; 2370 contents_scale = 11.f;
2370 2371
2371 SetContentsScaleOnBothLayers(contents_scale, 2372 SetContentsScaleOnBothLayers(contents_scale,
2372 device_scale, 2373 device_scale,
2373 page_scale, 2374 page_scale,
2374 maximum_animation_scale, 2375 maximum_animation_scale,
2375 animating_transform); 2376 animating_transform);
(...skipping 1994 matching lines...) Expand 10 before | Expand all | Expand 10 after
4370 SetupPendingTree(pending_pile2); 4371 SetupPendingTree(pending_pile2);
4371 ActivateTree(); 4372 ActivateTree();
4372 4373
4373 // We've switched to a solid color, so we should end up with no tilings. 4374 // We've switched to a solid color, so we should end up with no tilings.
4374 ASSERT_TRUE(active_layer_->tilings()); 4375 ASSERT_TRUE(active_layer_->tilings());
4375 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); 4376 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings());
4376 } 4377 }
4377 4378
4378 } // namespace 4379 } // namespace
4379 } // namespace cc 4380 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698