OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/trees/layer_tree_host_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 1146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1157 | 1157 |
1158 // Non-anchor zoom-in | 1158 // Non-anchor zoom-in |
1159 { | 1159 { |
1160 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, | 1160 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, |
1161 min_page_scale, | 1161 min_page_scale, |
1162 max_page_scale); | 1162 max_page_scale); |
1163 scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50)); | 1163 scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50)); |
1164 | 1164 |
1165 did_request_redraw_ = false; | 1165 did_request_redraw_ = false; |
1166 did_request_animate_ = false; | 1166 did_request_animate_ = false; |
1167 host_impl_->active_tree()->SetPageScaleAnimation( | 1167 host_impl_->active_tree()->SetPendingPageScaleAnimation( |
1168 gfx::Vector2d(), | 1168 scoped_ptr<PendingPageScaleAnimation>(new PendingPageScaleAnimation( |
1169 false, | 1169 gfx::Vector2d(), |
1170 2.f, | 1170 false, |
1171 duration); | 1171 2.f, |
| 1172 duration))); |
1172 host_impl_->ActivateSyncTree(); | 1173 host_impl_->ActivateSyncTree(); |
1173 EXPECT_FALSE(did_request_redraw_); | 1174 EXPECT_FALSE(did_request_redraw_); |
1174 EXPECT_TRUE(did_request_animate_); | 1175 EXPECT_TRUE(did_request_animate_); |
1175 | 1176 |
1176 did_request_redraw_ = false; | 1177 did_request_redraw_ = false; |
1177 did_request_animate_ = false; | 1178 did_request_animate_ = false; |
1178 host_impl_->Animate(start_time); | 1179 host_impl_->Animate(start_time); |
1179 EXPECT_TRUE(did_request_redraw_); | 1180 EXPECT_TRUE(did_request_redraw_); |
1180 EXPECT_TRUE(did_request_animate_); | 1181 EXPECT_TRUE(did_request_animate_); |
1181 | 1182 |
(...skipping 18 matching lines...) Expand all Loading... |
1200 | 1201 |
1201 // Anchor zoom-out | 1202 // Anchor zoom-out |
1202 { | 1203 { |
1203 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, | 1204 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, |
1204 min_page_scale, | 1205 min_page_scale, |
1205 max_page_scale); | 1206 max_page_scale); |
1206 scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50)); | 1207 scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50)); |
1207 | 1208 |
1208 did_request_redraw_ = false; | 1209 did_request_redraw_ = false; |
1209 did_request_animate_ = false; | 1210 did_request_animate_ = false; |
1210 host_impl_->active_tree()->SetPageScaleAnimation( | 1211 host_impl_->active_tree()->SetPendingPageScaleAnimation( |
1211 gfx::Vector2d(25, 25), true, min_page_scale, duration); | 1212 scoped_ptr<PendingPageScaleAnimation> (new PendingPageScaleAnimation( |
| 1213 gfx::Vector2d(25, 25), |
| 1214 true, |
| 1215 min_page_scale, |
| 1216 duration))); |
1212 host_impl_->ActivateSyncTree(); | 1217 host_impl_->ActivateSyncTree(); |
1213 EXPECT_FALSE(did_request_redraw_); | 1218 EXPECT_FALSE(did_request_redraw_); |
1214 EXPECT_TRUE(did_request_animate_); | 1219 EXPECT_TRUE(did_request_animate_); |
1215 | 1220 |
1216 did_request_redraw_ = false; | 1221 did_request_redraw_ = false; |
1217 did_request_animate_ = false; | 1222 did_request_animate_ = false; |
1218 host_impl_->Animate(start_time); | 1223 host_impl_->Animate(start_time); |
1219 EXPECT_TRUE(did_request_redraw_); | 1224 EXPECT_TRUE(did_request_redraw_); |
1220 EXPECT_TRUE(did_request_animate_); | 1225 EXPECT_TRUE(did_request_animate_); |
1221 | 1226 |
(...skipping 29 matching lines...) Expand all Loading... |
1251 base::TimeTicks halfway_through_animation = start_time + duration / 2; | 1256 base::TimeTicks halfway_through_animation = start_time + duration / 2; |
1252 base::TimeTicks end_time = start_time + duration; | 1257 base::TimeTicks end_time = start_time + duration; |
1253 | 1258 |
1254 // Anchor zoom with unchanged page scale should not change scroll or scale. | 1259 // Anchor zoom with unchanged page scale should not change scroll or scale. |
1255 { | 1260 { |
1256 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, | 1261 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, |
1257 min_page_scale, | 1262 min_page_scale, |
1258 max_page_scale); | 1263 max_page_scale); |
1259 scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50)); | 1264 scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50)); |
1260 | 1265 |
1261 host_impl_->active_tree()->SetPageScaleAnimation( | 1266 host_impl_->active_tree()->SetPendingPageScaleAnimation( |
1262 gfx::Vector2d(), | 1267 scoped_ptr<PendingPageScaleAnimation>(new PendingPageScaleAnimation( |
1263 true, | 1268 gfx::Vector2d(), |
1264 1.f, | 1269 true, |
1265 duration); | 1270 1.f, |
| 1271 duration))); |
1266 host_impl_->ActivateSyncTree(); | 1272 host_impl_->ActivateSyncTree(); |
1267 host_impl_->Animate(start_time); | 1273 host_impl_->Animate(start_time); |
1268 host_impl_->Animate(halfway_through_animation); | 1274 host_impl_->Animate(halfway_through_animation); |
1269 EXPECT_TRUE(did_request_redraw_); | 1275 EXPECT_TRUE(did_request_redraw_); |
1270 host_impl_->Animate(end_time); | 1276 host_impl_->Animate(end_time); |
1271 EXPECT_TRUE(did_request_commit_); | 1277 EXPECT_TRUE(did_request_commit_); |
1272 | 1278 |
1273 scoped_ptr<ScrollAndScaleSet> scroll_info = | 1279 scoped_ptr<ScrollAndScaleSet> scroll_info = |
1274 host_impl_->ProcessScrollDeltas(); | 1280 host_impl_->ProcessScrollDeltas(); |
1275 EXPECT_EQ(scroll_info->page_scale_delta, 1); | 1281 EXPECT_EQ(scroll_info->page_scale_delta, 1); |
(...skipping 23 matching lines...) Expand all Loading... |
1299 base::TimeDelta::FromSeconds(1); | 1305 base::TimeDelta::FromSeconds(1); |
1300 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100); | 1306 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(100); |
1301 base::TimeTicks third_through_animation = start_time + duration / 3; | 1307 base::TimeTicks third_through_animation = start_time + duration / 3; |
1302 base::TimeTicks halfway_through_animation = start_time + duration / 2; | 1308 base::TimeTicks halfway_through_animation = start_time + duration / 2; |
1303 base::TimeTicks end_time = start_time + duration; | 1309 base::TimeTicks end_time = start_time + duration; |
1304 float target_scale = 2.f; | 1310 float target_scale = 2.f; |
1305 | 1311 |
1306 scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50)); | 1312 scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50)); |
1307 | 1313 |
1308 // Make sure TakePageScaleAnimation works properly. | 1314 // Make sure TakePageScaleAnimation works properly. |
1309 host_impl_->sync_tree()->SetPageScaleAnimation( | 1315 |
1310 gfx::Vector2d(), | 1316 host_impl_->sync_tree()->SetPendingPageScaleAnimation( |
1311 false, | 1317 scoped_ptr<PendingPageScaleAnimation>(new PendingPageScaleAnimation( |
1312 target_scale, | 1318 gfx::Vector2d(), |
1313 duration); | 1319 false, |
1314 scoped_ptr<PageScaleAnimation> psa = | 1320 target_scale, |
1315 host_impl_->sync_tree()->TakePageScaleAnimation(); | 1321 duration))); |
1316 EXPECT_EQ(target_scale, psa->target_page_scale_factor()); | 1322 scoped_ptr<PendingPageScaleAnimation> psa = |
1317 EXPECT_EQ(duration, psa->duration()); | 1323 host_impl_->sync_tree()->TakePendingPageScaleAnimation(); |
1318 EXPECT_EQ(nullptr, host_impl_->sync_tree()->TakePageScaleAnimation()); | 1324 EXPECT_EQ(target_scale, psa->scale); |
| 1325 EXPECT_EQ(duration, psa->duration); |
| 1326 EXPECT_EQ(nullptr, host_impl_->sync_tree()->TakePendingPageScaleAnimation()); |
1319 | 1327 |
1320 // Recreate the PSA. Nothing should happen here since the tree containing the | 1328 // Recreate the PSA. Nothing should happen here since the tree containing the |
1321 // PSA hasn't been activated yet. | 1329 // PSA hasn't been activated yet. |
1322 did_request_redraw_ = false; | 1330 did_request_redraw_ = false; |
1323 did_request_animate_ = false; | 1331 did_request_animate_ = false; |
1324 host_impl_->sync_tree()->SetPageScaleAnimation( | 1332 host_impl_->sync_tree()->SetPendingPageScaleAnimation( |
1325 gfx::Vector2d(), | 1333 scoped_ptr<PendingPageScaleAnimation>(new PendingPageScaleAnimation( |
1326 false, | 1334 gfx::Vector2d(), |
1327 target_scale, | 1335 false, |
1328 duration); | 1336 target_scale, |
| 1337 duration))); |
1329 host_impl_->Animate(halfway_through_animation); | 1338 host_impl_->Animate(halfway_through_animation); |
1330 EXPECT_FALSE(did_request_animate_); | 1339 EXPECT_FALSE(did_request_animate_); |
1331 EXPECT_FALSE(did_request_redraw_); | 1340 EXPECT_FALSE(did_request_redraw_); |
1332 | 1341 |
1333 // Activate the sync tree. This should cause the animation to become enabled. | 1342 // Activate the sync tree. This should cause the animation to become enabled. |
1334 // It should also clear the pointer on the sync tree. | 1343 // It should also clear the pointer on the sync tree. |
1335 host_impl_->ActivateSyncTree(); | 1344 host_impl_->ActivateSyncTree(); |
1336 EXPECT_EQ(nullptr, host_impl_->sync_tree()->TakePageScaleAnimation().get()); | 1345 EXPECT_EQ(nullptr, |
| 1346 host_impl_->sync_tree()->TakePendingPageScaleAnimation().get()); |
1337 EXPECT_FALSE(did_request_redraw_); | 1347 EXPECT_FALSE(did_request_redraw_); |
1338 EXPECT_TRUE(did_request_animate_); | 1348 EXPECT_TRUE(did_request_animate_); |
1339 | 1349 |
1340 // From here on, make sure the animation runs as normal. | 1350 // From here on, make sure the animation runs as normal. |
1341 did_request_redraw_ = false; | 1351 did_request_redraw_ = false; |
1342 did_request_animate_ = false; | 1352 did_request_animate_ = false; |
1343 host_impl_->Animate(start_time); | 1353 host_impl_->Animate(start_time); |
1344 EXPECT_TRUE(did_request_redraw_); | 1354 EXPECT_TRUE(did_request_redraw_); |
1345 EXPECT_TRUE(did_request_animate_); | 1355 EXPECT_TRUE(did_request_animate_); |
1346 | 1356 |
(...skipping 6472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7819 // surface. | 7829 // surface. |
7820 EXPECT_EQ(0, num_lost_surfaces_); | 7830 EXPECT_EQ(0, num_lost_surfaces_); |
7821 host_impl_->DidLoseOutputSurface(); | 7831 host_impl_->DidLoseOutputSurface(); |
7822 EXPECT_EQ(1, num_lost_surfaces_); | 7832 EXPECT_EQ(1, num_lost_surfaces_); |
7823 host_impl_->DidLoseOutputSurface(); | 7833 host_impl_->DidLoseOutputSurface(); |
7824 EXPECT_LE(1, num_lost_surfaces_); | 7834 EXPECT_LE(1, num_lost_surfaces_); |
7825 } | 7835 } |
7826 | 7836 |
7827 } // namespace | 7837 } // namespace |
7828 } // namespace cc | 7838 } // namespace cc |
OLD | NEW |