| 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 |