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 1101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1112 } | 1112 } |
1113 | 1113 |
1114 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { | 1114 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { |
1115 gfx::Transform transform; | 1115 gfx::Transform transform; |
1116 FilterOperations filters; | 1116 FilterOperations filters; |
1117 LayerImpl* root = impl->active_tree()->root_layer_for_testing(); | 1117 LayerImpl* root = impl->active_tree()->root_layer_for_testing(); |
1118 switch (static_cast<Animations>(index_)) { | 1118 switch (static_cast<Animations>(index_)) { |
1119 case OPACITY: | 1119 case OPACITY: |
1120 index_++; | 1120 index_++; |
1121 impl->active_tree()->ResetAllChangeTracking(); | 1121 impl->active_tree()->ResetAllChangeTracking(); |
1122 impl->active_tree()->property_trees()->effect_tree.OnOpacityAnimated( | 1122 impl->active_tree()->SetTreeLayerOpacityMutated(root->element_id(), |
1123 0.5f, root->effect_tree_index(), impl->active_tree()); | 1123 0.5f); |
1124 PostSetNeedsCommitToMainThread(); | 1124 PostSetNeedsCommitToMainThread(); |
1125 break; | 1125 break; |
1126 case TRANSFORM: | 1126 case TRANSFORM: |
1127 index_++; | 1127 index_++; |
1128 EXPECT_TRUE(impl->active_tree() | 1128 EXPECT_TRUE(impl->active_tree() |
1129 ->LayerById(root_->id()) | 1129 ->LayerById(root_->id()) |
1130 ->LayerPropertyChanged()); | 1130 ->LayerPropertyChanged()); |
1131 impl->active_tree()->ResetAllChangeTracking(); | 1131 impl->active_tree()->ResetAllChangeTracking(); |
1132 EXPECT_FALSE(impl->active_tree() | 1132 EXPECT_FALSE(impl->active_tree() |
1133 ->LayerById(root_->id()) | 1133 ->LayerById(root_->id()) |
1134 ->LayerPropertyChanged()); | 1134 ->LayerPropertyChanged()); |
1135 EXPECT_FALSE(impl->active_tree() | 1135 EXPECT_FALSE(impl->active_tree() |
1136 ->LayerById(child_->id()) | 1136 ->LayerById(child_->id()) |
1137 ->LayerPropertyChanged()); | 1137 ->LayerPropertyChanged()); |
1138 transform.Translate(10, 10); | 1138 transform.Translate(10, 10); |
1139 impl->active_tree() | 1139 impl->active_tree()->SetTreeLayerTransformMutated(root->element_id(), |
1140 ->property_trees() | 1140 transform); |
1141 ->transform_tree.OnTransformAnimated( | |
1142 transform, root->transform_tree_index(), impl->active_tree()); | |
1143 PostSetNeedsCommitToMainThread(); | 1141 PostSetNeedsCommitToMainThread(); |
1144 break; | 1142 break; |
1145 case FILTER: | 1143 case FILTER: |
1146 index_++; | 1144 index_++; |
1147 EXPECT_TRUE(root->LayerPropertyChanged()); | 1145 EXPECT_TRUE(root->LayerPropertyChanged()); |
1148 EXPECT_TRUE(impl->active_tree() | 1146 EXPECT_TRUE(impl->active_tree() |
1149 ->LayerById(child_->id()) | 1147 ->LayerById(child_->id()) |
1150 ->LayerPropertyChanged()); | 1148 ->LayerPropertyChanged()); |
1151 impl->active_tree()->ResetAllChangeTracking(); | 1149 impl->active_tree()->ResetAllChangeTracking(); |
1152 EXPECT_FALSE(root->LayerPropertyChanged()); | 1150 EXPECT_FALSE(root->LayerPropertyChanged()); |
1153 EXPECT_FALSE(impl->active_tree() | 1151 EXPECT_FALSE(impl->active_tree() |
1154 ->LayerById(child_->id()) | 1152 ->LayerById(child_->id()) |
1155 ->LayerPropertyChanged()); | 1153 ->LayerPropertyChanged()); |
1156 filters.Append(FilterOperation::CreateOpacityFilter(0.5f)); | 1154 filters.Append(FilterOperation::CreateOpacityFilter(0.5f)); |
1157 impl->active_tree()->property_trees()->effect_tree.OnFilterAnimated( | 1155 impl->active_tree()->SetTreeLayerFilterMutated(root->element_id(), |
1158 filters, root->effect_tree_index(), impl->active_tree()); | 1156 filters); |
1159 PostSetNeedsCommitToMainThread(); | 1157 PostSetNeedsCommitToMainThread(); |
1160 break; | 1158 break; |
1161 case END: | 1159 case END: |
1162 EXPECT_TRUE(root->LayerPropertyChanged()); | 1160 EXPECT_TRUE(root->LayerPropertyChanged()); |
1163 EndTest(); | 1161 EndTest(); |
1164 break; | 1162 break; |
1165 } | 1163 } |
1166 } | 1164 } |
1167 | 1165 |
1168 void AfterTest() override {} | 1166 void AfterTest() override {} |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1222 break; | 1220 break; |
1223 } | 1221 } |
1224 } | 1222 } |
1225 | 1223 |
1226 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { | 1224 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { |
1227 EffectTree& effect_tree = impl->sync_tree()->property_trees()->effect_tree; | 1225 EffectTree& effect_tree = impl->sync_tree()->property_trees()->effect_tree; |
1228 LayerImpl* root = impl->sync_tree()->root_layer_for_testing(); | 1226 LayerImpl* root = impl->sync_tree()->root_layer_for_testing(); |
1229 EffectNode* node = effect_tree.Node(root->effect_tree_index()); | 1227 EffectNode* node = effect_tree.Node(root->effect_tree_index()); |
1230 switch (impl->sync_tree()->source_frame_number()) { | 1228 switch (impl->sync_tree()->source_frame_number()) { |
1231 case 0: | 1229 case 0: |
1232 effect_tree.OnOpacityAnimated(0.75f, root->effect_tree_index(), | 1230 impl->sync_tree()->SetTreeLayerOpacityMutated(root->element_id(), |
1233 impl->sync_tree()); | 1231 0.75f); |
1234 PostSetNeedsCommitToMainThread(); | 1232 PostSetNeedsCommitToMainThread(); |
1235 break; | 1233 break; |
1236 case 1: | 1234 case 1: |
1237 EXPECT_EQ(node->opacity, 0.75f); | 1235 EXPECT_EQ(node->opacity, 0.75f); |
1238 PostSetNeedsCommitToMainThread(); | 1236 PostSetNeedsCommitToMainThread(); |
1239 break; | 1237 break; |
1240 case 2: | 1238 case 2: |
1241 EXPECT_EQ(node->opacity, 0.75f); | 1239 EXPECT_EQ(node->opacity, 0.75f); |
1242 effect_tree.OnOpacityAnimated(0.75f, root->effect_tree_index(), | 1240 impl->sync_tree()->SetTreeLayerOpacityMutated(root->element_id(), |
1243 impl->sync_tree()); | 1241 0.75f); |
1244 PostSetNeedsCommitToMainThread(); | 1242 PostSetNeedsCommitToMainThread(); |
1245 break; | 1243 break; |
1246 case 3: | 1244 case 3: |
1247 EXPECT_EQ(node->opacity, 0.5f); | 1245 EXPECT_EQ(node->opacity, 0.5f); |
1248 PostSetNeedsCommitToMainThread(); | 1246 PostSetNeedsCommitToMainThread(); |
1249 break; | 1247 break; |
1250 case 4: | 1248 case 4: |
1251 EXPECT_EQ(node->opacity, 0.25f); | 1249 EXPECT_EQ(node->opacity, 0.25f); |
1252 impl->sync_tree()->property_trees()->effect_tree.OnFilterAnimated( | 1250 impl->sync_tree()->SetTreeLayerFilterMutated(root->element_id(), |
1253 brightness_filter_, root->effect_tree_index(), impl->sync_tree()); | 1251 brightness_filter_); |
1254 PostSetNeedsCommitToMainThread(); | 1252 PostSetNeedsCommitToMainThread(); |
1255 break; | 1253 break; |
1256 case 5: | 1254 case 5: |
1257 EXPECT_EQ(node->filters, brightness_filter_); | 1255 EXPECT_EQ(node->filters, brightness_filter_); |
1258 PostSetNeedsCommitToMainThread(); | 1256 PostSetNeedsCommitToMainThread(); |
1259 break; | 1257 break; |
1260 case 6: | 1258 case 6: |
1261 EXPECT_EQ(node->filters, brightness_filter_); | 1259 EXPECT_EQ(node->filters, brightness_filter_); |
1262 impl->sync_tree()->property_trees()->effect_tree.OnFilterAnimated( | 1260 impl->sync_tree()->SetTreeLayerFilterMutated(root->element_id(), |
1263 brightness_filter_, root->effect_tree_index(), impl->sync_tree()); | 1261 brightness_filter_); |
1264 PostSetNeedsCommitToMainThread(); | 1262 PostSetNeedsCommitToMainThread(); |
1265 break; | 1263 break; |
1266 case 7: | 1264 case 7: |
1267 EXPECT_EQ(node->filters, blur_filter_); | 1265 EXPECT_EQ(node->filters, blur_filter_); |
1268 PostSetNeedsCommitToMainThread(); | 1266 PostSetNeedsCommitToMainThread(); |
1269 break; | 1267 break; |
1270 case 8: | 1268 case 8: |
1271 EXPECT_EQ(node->filters, sepia_filter_); | 1269 EXPECT_EQ(node->filters, sepia_filter_); |
1272 EndTest(); | 1270 EndTest(); |
1273 break; | 1271 break; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1315 case 4: | 1313 case 4: |
1316 node->local = gfx::Transform(); | 1314 node->local = gfx::Transform(); |
1317 node->is_currently_animating = true; | 1315 node->is_currently_animating = true; |
1318 break; | 1316 break; |
1319 } | 1317 } |
1320 } | 1318 } |
1321 | 1319 |
1322 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { | 1320 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { |
1323 TransformTree& transform_tree = | 1321 TransformTree& transform_tree = |
1324 impl->sync_tree()->property_trees()->transform_tree; | 1322 impl->sync_tree()->property_trees()->transform_tree; |
1325 TransformNode* node = transform_tree.Node( | 1323 const LayerImpl* root_layer = impl->sync_tree()->root_layer_for_testing(); |
1326 impl->sync_tree()->root_layer_for_testing()->transform_tree_index()); | 1324 const TransformNode* node = |
| 1325 transform_tree.FindNodeFromOwningLayerId(root_layer->id()); |
1327 gfx::Transform rotate10; | 1326 gfx::Transform rotate10; |
1328 rotate10.Rotate(10.f); | 1327 rotate10.Rotate(10.f); |
1329 gfx::Transform rotate20; | 1328 gfx::Transform rotate20; |
1330 rotate20.Rotate(20.f); | 1329 rotate20.Rotate(20.f); |
1331 switch (impl->sync_tree()->source_frame_number()) { | 1330 switch (impl->sync_tree()->source_frame_number()) { |
1332 case 0: | 1331 case 0: |
1333 impl->sync_tree()->property_trees()->transform_tree.OnTransformAnimated( | 1332 impl->sync_tree()->SetTreeLayerTransformMutated( |
1334 rotate20, node->id, impl->sync_tree()); | 1333 root_layer->element_id(), rotate20); |
1335 PostSetNeedsCommitToMainThread(); | 1334 PostSetNeedsCommitToMainThread(); |
1336 break; | 1335 break; |
1337 case 1: | 1336 case 1: |
1338 EXPECT_EQ(node->local, rotate20); | 1337 EXPECT_EQ(node->local, rotate20); |
1339 PostSetNeedsCommitToMainThread(); | 1338 PostSetNeedsCommitToMainThread(); |
1340 break; | 1339 break; |
1341 case 2: | 1340 case 2: |
1342 EXPECT_EQ(node->local, rotate20); | 1341 EXPECT_EQ(node->local, rotate20); |
1343 impl->sync_tree()->property_trees()->transform_tree.OnTransformAnimated( | 1342 impl->sync_tree()->SetTreeLayerTransformMutated( |
1344 rotate20, node->id, impl->sync_tree()); | 1343 root_layer->element_id(), rotate20); |
1345 PostSetNeedsCommitToMainThread(); | 1344 PostSetNeedsCommitToMainThread(); |
1346 break; | 1345 break; |
1347 case 3: | 1346 case 3: |
1348 EXPECT_EQ(node->local, rotate10); | 1347 EXPECT_EQ(node->local, rotate10); |
1349 PostSetNeedsCommitToMainThread(); | 1348 PostSetNeedsCommitToMainThread(); |
1350 break; | 1349 break; |
1351 case 4: | 1350 case 4: |
1352 EXPECT_EQ(node->local, gfx::Transform()); | 1351 EXPECT_EQ(node->local, gfx::Transform()); |
1353 EndTest(); | 1352 EndTest(); |
1354 } | 1353 } |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1418 EndTest(); | 1417 EndTest(); |
1419 } | 1418 } |
1420 | 1419 |
1421 return draw_result; | 1420 return draw_result; |
1422 } | 1421 } |
1423 | 1422 |
1424 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { | 1423 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { |
1425 if (impl->active_tree()->source_frame_number() == 0) { | 1424 if (impl->active_tree()->source_frame_number() == 0) { |
1426 gfx::Transform scale; | 1425 gfx::Transform scale; |
1427 scale.Scale(2.0, 2.0); | 1426 scale.Scale(2.0, 2.0); |
1428 impl->active_tree()->property_trees()->transform_tree.OnTransformAnimated( | 1427 impl->active_tree()->SetTreeLayerTransformMutated(child_->element_id(), |
1429 scale, child_->transform_tree_index(), impl->active_tree()); | 1428 scale); |
1430 } | 1429 } |
1431 } | 1430 } |
1432 | 1431 |
1433 void AfterTest() override {} | 1432 void AfterTest() override {} |
1434 | 1433 |
1435 private: | 1434 private: |
1436 scoped_refptr<Layer> root_; | 1435 scoped_refptr<Layer> root_; |
1437 scoped_refptr<Layer> child_; | 1436 scoped_refptr<Layer> child_; |
1438 scoped_refptr<Layer> grand_child_; | 1437 scoped_refptr<Layer> grand_child_; |
1439 }; | 1438 }; |
(...skipping 5744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7184 | 7183 |
7185 private: | 7184 private: |
7186 bool first_ = true; | 7185 bool first_ = true; |
7187 SkBitmap bitmap_; | 7186 SkBitmap bitmap_; |
7188 }; | 7187 }; |
7189 | 7188 |
7190 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestQueueImageDecodeNonLazy); | 7189 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestQueueImageDecodeNonLazy); |
7191 | 7190 |
7192 } // namespace | 7191 } // namespace |
7193 } // namespace cc | 7192 } // namespace cc |
OLD | NEW |