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

Side by Side Diff: cc/trees/layer_tree_host_unittest.cc

Issue 2762123004: cc: LayerTreeHostImpl uses element id to tick animations (Closed)
Patch Set: review comments Created 3 years, 8 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 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.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 1110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 } 1121 }
1122 1122
1123 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { 1123 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override {
1124 gfx::Transform transform; 1124 gfx::Transform transform;
1125 FilterOperations filters; 1125 FilterOperations filters;
1126 LayerImpl* root = impl->active_tree()->root_layer_for_testing(); 1126 LayerImpl* root = impl->active_tree()->root_layer_for_testing();
1127 switch (static_cast<Animations>(index_)) { 1127 switch (static_cast<Animations>(index_)) {
1128 case OPACITY: 1128 case OPACITY:
1129 index_++; 1129 index_++;
1130 impl->active_tree()->ResetAllChangeTracking(); 1130 impl->active_tree()->ResetAllChangeTracking();
1131 impl->active_tree()->property_trees()->effect_tree.OnOpacityAnimated( 1131 impl->active_tree()->SetOpacityMutated(root->element_id(), 0.5f);
1132 0.5f, root->effect_tree_index(), impl->active_tree());
1133 PostSetNeedsCommitToMainThread(); 1132 PostSetNeedsCommitToMainThread();
1134 break; 1133 break;
1135 case TRANSFORM: 1134 case TRANSFORM:
1136 index_++; 1135 index_++;
1137 EXPECT_TRUE(impl->active_tree() 1136 EXPECT_TRUE(impl->active_tree()
1138 ->LayerById(root_->id()) 1137 ->LayerById(root_->id())
1139 ->LayerPropertyChanged()); 1138 ->LayerPropertyChanged());
1140 impl->active_tree()->ResetAllChangeTracking(); 1139 impl->active_tree()->ResetAllChangeTracking();
1141 EXPECT_FALSE(impl->active_tree() 1140 EXPECT_FALSE(impl->active_tree()
1142 ->LayerById(root_->id()) 1141 ->LayerById(root_->id())
1143 ->LayerPropertyChanged()); 1142 ->LayerPropertyChanged());
1144 EXPECT_FALSE(impl->active_tree() 1143 EXPECT_FALSE(impl->active_tree()
1145 ->LayerById(child_->id()) 1144 ->LayerById(child_->id())
1146 ->LayerPropertyChanged()); 1145 ->LayerPropertyChanged());
1147 transform.Translate(10, 10); 1146 transform.Translate(10, 10);
1148 impl->active_tree() 1147 impl->active_tree()->SetTransformMutated(root->element_id(), transform);
1149 ->property_trees()
1150 ->transform_tree.OnTransformAnimated(
1151 transform, root->transform_tree_index(), impl->active_tree());
1152 PostSetNeedsCommitToMainThread(); 1148 PostSetNeedsCommitToMainThread();
1153 break; 1149 break;
1154 case FILTER: 1150 case FILTER:
1155 index_++; 1151 index_++;
1156 EXPECT_TRUE(root->LayerPropertyChanged()); 1152 EXPECT_TRUE(root->LayerPropertyChanged());
1157 EXPECT_TRUE(impl->active_tree() 1153 EXPECT_TRUE(impl->active_tree()
1158 ->LayerById(child_->id()) 1154 ->LayerById(child_->id())
1159 ->LayerPropertyChanged()); 1155 ->LayerPropertyChanged());
1160 impl->active_tree()->ResetAllChangeTracking(); 1156 impl->active_tree()->ResetAllChangeTracking();
1161 EXPECT_FALSE(root->LayerPropertyChanged()); 1157 EXPECT_FALSE(root->LayerPropertyChanged());
1162 EXPECT_FALSE(impl->active_tree() 1158 EXPECT_FALSE(impl->active_tree()
1163 ->LayerById(child_->id()) 1159 ->LayerById(child_->id())
1164 ->LayerPropertyChanged()); 1160 ->LayerPropertyChanged());
1165 filters.Append(FilterOperation::CreateOpacityFilter(0.5f)); 1161 filters.Append(FilterOperation::CreateOpacityFilter(0.5f));
1166 impl->active_tree()->property_trees()->effect_tree.OnFilterAnimated( 1162 impl->active_tree()->SetFilterMutated(root->element_id(), filters);
1167 filters, root->effect_tree_index(), impl->active_tree());
1168 PostSetNeedsCommitToMainThread(); 1163 PostSetNeedsCommitToMainThread();
1169 break; 1164 break;
1170 case END: 1165 case END:
1171 EXPECT_TRUE(root->LayerPropertyChanged()); 1166 EXPECT_TRUE(root->LayerPropertyChanged());
1172 EndTest(); 1167 EndTest();
1173 break; 1168 break;
1174 } 1169 }
1175 } 1170 }
1176 1171
1177 void AfterTest() override {} 1172 void AfterTest() override {}
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1231 break; 1226 break;
1232 } 1227 }
1233 } 1228 }
1234 1229
1235 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { 1230 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override {
1236 EffectTree& effect_tree = impl->sync_tree()->property_trees()->effect_tree; 1231 EffectTree& effect_tree = impl->sync_tree()->property_trees()->effect_tree;
1237 LayerImpl* root = impl->sync_tree()->root_layer_for_testing(); 1232 LayerImpl* root = impl->sync_tree()->root_layer_for_testing();
1238 EffectNode* node = effect_tree.Node(root->effect_tree_index()); 1233 EffectNode* node = effect_tree.Node(root->effect_tree_index());
1239 switch (impl->sync_tree()->source_frame_number()) { 1234 switch (impl->sync_tree()->source_frame_number()) {
1240 case 0: 1235 case 0:
1241 effect_tree.OnOpacityAnimated(0.75f, root->effect_tree_index(), 1236 impl->sync_tree()->SetOpacityMutated(root->element_id(), 0.75f);
1242 impl->sync_tree());
1243 PostSetNeedsCommitToMainThread(); 1237 PostSetNeedsCommitToMainThread();
1244 break; 1238 break;
1245 case 1: 1239 case 1:
1246 EXPECT_EQ(node->opacity, 0.75f); 1240 EXPECT_EQ(node->opacity, 0.75f);
1247 PostSetNeedsCommitToMainThread(); 1241 PostSetNeedsCommitToMainThread();
1248 break; 1242 break;
1249 case 2: 1243 case 2:
1250 EXPECT_EQ(node->opacity, 0.75f); 1244 EXPECT_EQ(node->opacity, 0.75f);
1251 effect_tree.OnOpacityAnimated(0.75f, root->effect_tree_index(), 1245 impl->sync_tree()->SetOpacityMutated(root->element_id(), 0.75f);
1252 impl->sync_tree());
1253 PostSetNeedsCommitToMainThread(); 1246 PostSetNeedsCommitToMainThread();
1254 break; 1247 break;
1255 case 3: 1248 case 3:
1256 EXPECT_EQ(node->opacity, 0.5f); 1249 EXPECT_EQ(node->opacity, 0.5f);
1257 PostSetNeedsCommitToMainThread(); 1250 PostSetNeedsCommitToMainThread();
1258 break; 1251 break;
1259 case 4: 1252 case 4:
1260 EXPECT_EQ(node->opacity, 0.25f); 1253 EXPECT_EQ(node->opacity, 0.25f);
1261 impl->sync_tree()->property_trees()->effect_tree.OnFilterAnimated( 1254 impl->sync_tree()->SetFilterMutated(root->element_id(),
1262 brightness_filter_, root->effect_tree_index(), impl->sync_tree()); 1255 brightness_filter_);
1263 PostSetNeedsCommitToMainThread(); 1256 PostSetNeedsCommitToMainThread();
1264 break; 1257 break;
1265 case 5: 1258 case 5:
1266 EXPECT_EQ(node->filters, brightness_filter_); 1259 EXPECT_EQ(node->filters, brightness_filter_);
1267 PostSetNeedsCommitToMainThread(); 1260 PostSetNeedsCommitToMainThread();
1268 break; 1261 break;
1269 case 6: 1262 case 6:
1270 EXPECT_EQ(node->filters, brightness_filter_); 1263 EXPECT_EQ(node->filters, brightness_filter_);
1271 impl->sync_tree()->property_trees()->effect_tree.OnFilterAnimated( 1264 impl->sync_tree()->SetFilterMutated(root->element_id(),
1272 brightness_filter_, root->effect_tree_index(), impl->sync_tree()); 1265 brightness_filter_);
1273 PostSetNeedsCommitToMainThread(); 1266 PostSetNeedsCommitToMainThread();
1274 break; 1267 break;
1275 case 7: 1268 case 7:
1276 EXPECT_EQ(node->filters, blur_filter_); 1269 EXPECT_EQ(node->filters, blur_filter_);
1277 PostSetNeedsCommitToMainThread(); 1270 PostSetNeedsCommitToMainThread();
1278 break; 1271 break;
1279 case 8: 1272 case 8:
1280 EXPECT_EQ(node->filters, sepia_filter_); 1273 EXPECT_EQ(node->filters, sepia_filter_);
1281 EndTest(); 1274 EndTest();
1282 break; 1275 break;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1324 case 4: 1317 case 4:
1325 node->local = gfx::Transform(); 1318 node->local = gfx::Transform();
1326 node->is_currently_animating = true; 1319 node->is_currently_animating = true;
1327 break; 1320 break;
1328 } 1321 }
1329 } 1322 }
1330 1323
1331 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { 1324 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override {
1332 TransformTree& transform_tree = 1325 TransformTree& transform_tree =
1333 impl->sync_tree()->property_trees()->transform_tree; 1326 impl->sync_tree()->property_trees()->transform_tree;
1334 TransformNode* node = transform_tree.Node( 1327 const LayerImpl* root_layer = impl->sync_tree()->root_layer_for_testing();
1335 impl->sync_tree()->root_layer_for_testing()->transform_tree_index()); 1328 const TransformNode* node =
1329 transform_tree.Node(root_layer->transform_tree_index());
1336 gfx::Transform rotate10; 1330 gfx::Transform rotate10;
1337 rotate10.Rotate(10.f); 1331 rotate10.Rotate(10.f);
1338 gfx::Transform rotate20; 1332 gfx::Transform rotate20;
1339 rotate20.Rotate(20.f); 1333 rotate20.Rotate(20.f);
1340 switch (impl->sync_tree()->source_frame_number()) { 1334 switch (impl->sync_tree()->source_frame_number()) {
1341 case 0: 1335 case 0:
1342 impl->sync_tree()->property_trees()->transform_tree.OnTransformAnimated( 1336 impl->sync_tree()->SetTransformMutated(root_layer->element_id(),
1343 rotate20, node->id, impl->sync_tree()); 1337 rotate20);
1344 PostSetNeedsCommitToMainThread(); 1338 PostSetNeedsCommitToMainThread();
1345 break; 1339 break;
1346 case 1: 1340 case 1:
1347 EXPECT_EQ(node->local, rotate20); 1341 EXPECT_EQ(node->local, rotate20);
1348 PostSetNeedsCommitToMainThread(); 1342 PostSetNeedsCommitToMainThread();
1349 break; 1343 break;
1350 case 2: 1344 case 2:
1351 EXPECT_EQ(node->local, rotate20); 1345 EXPECT_EQ(node->local, rotate20);
1352 impl->sync_tree()->property_trees()->transform_tree.OnTransformAnimated( 1346 impl->sync_tree()->SetTransformMutated(root_layer->element_id(),
1353 rotate20, node->id, impl->sync_tree()); 1347 rotate20);
1354 PostSetNeedsCommitToMainThread(); 1348 PostSetNeedsCommitToMainThread();
1355 break; 1349 break;
1356 case 3: 1350 case 3:
1357 EXPECT_EQ(node->local, rotate10); 1351 EXPECT_EQ(node->local, rotate10);
1358 PostSetNeedsCommitToMainThread(); 1352 PostSetNeedsCommitToMainThread();
1359 break; 1353 break;
1360 case 4: 1354 case 4:
1361 EXPECT_EQ(node->local, gfx::Transform()); 1355 EXPECT_EQ(node->local, gfx::Transform());
1362 EndTest(); 1356 EndTest();
1363 } 1357 }
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1427 EndTest(); 1421 EndTest();
1428 } 1422 }
1429 1423
1430 return draw_result; 1424 return draw_result;
1431 } 1425 }
1432 1426
1433 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { 1427 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
1434 if (impl->active_tree()->source_frame_number() == 0) { 1428 if (impl->active_tree()->source_frame_number() == 0) {
1435 gfx::Transform scale; 1429 gfx::Transform scale;
1436 scale.Scale(2.0, 2.0); 1430 scale.Scale(2.0, 2.0);
1437 impl->active_tree()->property_trees()->transform_tree.OnTransformAnimated( 1431 impl->active_tree()->SetTransformMutated(child_->element_id(), scale);
1438 scale, child_->transform_tree_index(), impl->active_tree());
1439 } 1432 }
1440 } 1433 }
1441 1434
1442 void AfterTest() override {} 1435 void AfterTest() override {}
1443 1436
1444 private: 1437 private:
1445 scoped_refptr<Layer> root_; 1438 scoped_refptr<Layer> root_;
1446 scoped_refptr<Layer> child_; 1439 scoped_refptr<Layer> child_;
1447 scoped_refptr<Layer> grand_child_; 1440 scoped_refptr<Layer> grand_child_;
1448 }; 1441 };
(...skipping 5884 matching lines...) Expand 10 before | Expand all | Expand 10 after
7333 DCHECK_EQ(hud->scroll_tree_index(), root_layer->scroll_tree_index()); 7326 DCHECK_EQ(hud->scroll_tree_index(), root_layer->scroll_tree_index());
7334 } 7327 }
7335 7328
7336 void AfterTest() override {} 7329 void AfterTest() override {}
7337 }; 7330 };
7338 7331
7339 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestHudLayerWithLayerLists); 7332 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestHudLayerWithLayerLists);
7340 7333
7341 } // namespace 7334 } // namespace
7342 } // namespace cc 7335 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698