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.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 Loading... | |
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 Loading... | |
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 Loading... | |
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.FindNodeFromOwningLayerId(root_layer->id()); | |
pdr.
2017/03/27 21:21:27
Do we need to add an owning layer id dependency he
weiliangc
2017/03/28 20:21:28
Done.
| |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |