| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/layers/layer_proto_converter.h" | 5 #include "cc/layers/layer_proto_converter.h" |
| 6 | 6 |
| 7 #include "cc/layers/empty_content_layer_client.h" | 7 #include "cc/layers/empty_content_layer_client.h" |
| 8 #include "cc/layers/heads_up_display_layer.h" | 8 #include "cc/layers/heads_up_display_layer.h" |
| 9 #include "cc/layers/layer.h" | 9 #include "cc/layers/layer.h" |
| 10 #include "cc/layers/layer_settings.h" | |
| 11 #include "cc/layers/picture_layer.h" | 10 #include "cc/layers/picture_layer.h" |
| 12 #include "cc/proto/layer.pb.h" | 11 #include "cc/proto/layer.pb.h" |
| 13 #include "cc/test/fake_layer_tree_host.h" | 12 #include "cc/test/fake_layer_tree_host.h" |
| 14 #include "cc/test/fake_layer_tree_host_client.h" | 13 #include "cc/test/fake_layer_tree_host_client.h" |
| 15 #include "cc/test/test_task_graph_runner.h" | 14 #include "cc/test/test_task_graph_runner.h" |
| 16 #include "cc/trees/layer_tree_settings.h" | 15 #include "cc/trees/layer_tree_settings.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 18 | 17 |
| 19 namespace cc { | 18 namespace cc { |
| 20 namespace { | 19 namespace { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 41 | 40 |
| 42 TEST_F(LayerProtoConverterTest, TestKeepingRoot) { | 41 TEST_F(LayerProtoConverterTest, TestKeepingRoot) { |
| 43 /* Test deserialization of a tree that looks like: | 42 /* Test deserialization of a tree that looks like: |
| 44 root | 43 root |
| 45 / \ | 44 / \ |
| 46 a b | 45 a b |
| 47 \ | 46 \ |
| 48 c | 47 c |
| 49 The old root node will be reused during deserialization. | 48 The old root node will be reused during deserialization. |
| 50 */ | 49 */ |
| 51 scoped_refptr<Layer> old_root = Layer::Create(LayerSettings()); | 50 scoped_refptr<Layer> old_root = Layer::Create(); |
| 52 proto::LayerNode root_node; | 51 proto::LayerNode root_node; |
| 53 root_node.set_id(old_root->id()); | 52 root_node.set_id(old_root->id()); |
| 54 root_node.set_type(proto::LayerNode::LAYER); | 53 root_node.set_type(proto::LayerNode::LAYER); |
| 55 | 54 |
| 56 proto::LayerNode* child_a_node = root_node.add_children(); | 55 proto::LayerNode* child_a_node = root_node.add_children(); |
| 57 child_a_node->set_id(442); | 56 child_a_node->set_id(442); |
| 58 child_a_node->set_type(proto::LayerNode::LAYER); | 57 child_a_node->set_type(proto::LayerNode::LAYER); |
| 59 child_a_node->set_parent_id(old_root->id()); // root_node | 58 child_a_node->set_parent_id(old_root->id()); // root_node |
| 60 | 59 |
| 61 proto::LayerNode* child_b_node = root_node.add_children(); | 60 proto::LayerNode* child_b_node = root_node.add_children(); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 proto::LayerNode* child_b_node = root_node.add_children(); | 136 proto::LayerNode* child_b_node = root_node.add_children(); |
| 138 child_b_node->set_id(443); | 137 child_b_node->set_id(443); |
| 139 child_b_node->set_type(proto::LayerNode::LAYER); | 138 child_b_node->set_type(proto::LayerNode::LAYER); |
| 140 child_b_node->set_parent_id(root_node.id()); | 139 child_b_node->set_parent_id(root_node.id()); |
| 141 | 140 |
| 142 proto::LayerNode* child_c_node = child_b_node->add_children(); | 141 proto::LayerNode* child_c_node = child_b_node->add_children(); |
| 143 child_c_node->set_id(444); | 142 child_c_node->set_id(444); |
| 144 child_c_node->set_type(proto::LayerNode::LAYER); | 143 child_c_node->set_type(proto::LayerNode::LAYER); |
| 145 child_c_node->set_parent_id(child_b_node->id()); | 144 child_c_node->set_parent_id(child_b_node->id()); |
| 146 | 145 |
| 147 scoped_refptr<Layer> old_root = Layer::Create(LayerSettings()); | 146 scoped_refptr<Layer> old_root = Layer::Create(); |
| 148 scoped_refptr<Layer> new_root = | 147 scoped_refptr<Layer> new_root = |
| 149 LayerProtoConverter::DeserializeLayerHierarchy(old_root, root_node); | 148 LayerProtoConverter::DeserializeLayerHierarchy(old_root, root_node); |
| 150 | 149 |
| 151 // The new root should not be the same as the old root. | 150 // The new root should not be the same as the old root. |
| 152 EXPECT_EQ(root_node.id(), new_root->id()); | 151 EXPECT_EQ(root_node.id(), new_root->id()); |
| 153 ASSERT_EQ(2u, new_root->children().size()); | 152 ASSERT_EQ(2u, new_root->children().size()); |
| 154 scoped_refptr<Layer> child_a = new_root->children()[0]; | 153 scoped_refptr<Layer> child_a = new_root->children()[0]; |
| 155 scoped_refptr<Layer> child_b = new_root->children()[1]; | 154 scoped_refptr<Layer> child_b = new_root->children()[1]; |
| 156 | 155 |
| 157 EXPECT_EQ(child_a_node->id(), child_a->id()); | 156 EXPECT_EQ(child_a_node->id(), child_a->id()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 168 /* Testing serialization of properties for a tree that looks like this: | 167 /* Testing serialization of properties for a tree that looks like this: |
| 169 root+ | 168 root+ |
| 170 / \ | 169 / \ |
| 171 a* b*+[mask:*,replica] | 170 a* b*+[mask:*,replica] |
| 172 / \ | 171 / \ |
| 173 c d* | 172 c d* |
| 174 Layers marked with * have changed properties. | 173 Layers marked with * have changed properties. |
| 175 Layers marked with + have descendants with changed properties. | 174 Layers marked with + have descendants with changed properties. |
| 176 Layer b also has a mask layer and a replica layer. | 175 Layer b also has a mask layer and a replica layer. |
| 177 */ | 176 */ |
| 178 scoped_refptr<Layer> layer_src_root = Layer::Create(LayerSettings()); | 177 scoped_refptr<Layer> layer_src_root = Layer::Create(); |
| 179 scoped_refptr<Layer> layer_src_a = Layer::Create(LayerSettings()); | 178 scoped_refptr<Layer> layer_src_a = Layer::Create(); |
| 180 scoped_refptr<Layer> layer_src_b = Layer::Create(LayerSettings()); | 179 scoped_refptr<Layer> layer_src_b = Layer::Create(); |
| 181 scoped_refptr<Layer> layer_src_b_mask = Layer::Create(LayerSettings()); | 180 scoped_refptr<Layer> layer_src_b_mask = Layer::Create(); |
| 182 scoped_refptr<Layer> layer_src_b_replica = Layer::Create(LayerSettings()); | 181 scoped_refptr<Layer> layer_src_b_replica = Layer::Create(); |
| 183 scoped_refptr<Layer> layer_src_c = Layer::Create(LayerSettings()); | 182 scoped_refptr<Layer> layer_src_c = Layer::Create(); |
| 184 scoped_refptr<Layer> layer_src_d = Layer::Create(LayerSettings()); | 183 scoped_refptr<Layer> layer_src_d = Layer::Create(); |
| 185 layer_src_root->AddChild(layer_src_a); | 184 layer_src_root->AddChild(layer_src_a); |
| 186 layer_src_root->AddChild(layer_src_b); | 185 layer_src_root->AddChild(layer_src_b); |
| 187 layer_src_a->AddChild(layer_src_c); | 186 layer_src_a->AddChild(layer_src_c); |
| 188 layer_src_b->AddChild(layer_src_d); | 187 layer_src_b->AddChild(layer_src_d); |
| 189 layer_src_b->SetMaskLayer(layer_src_b_mask.get()); | 188 layer_src_b->SetMaskLayer(layer_src_b_mask.get()); |
| 190 layer_src_b->SetReplicaLayer(layer_src_b_replica.get()); | 189 layer_src_b->SetReplicaLayer(layer_src_b_replica.get()); |
| 191 | 190 |
| 192 proto::LayerUpdate layer_update; | 191 proto::LayerUpdate layer_update; |
| 193 LayerProtoConverter::SerializeLayerProperties(layer_src_root.get(), | 192 LayerProtoConverter::SerializeLayerProperties(layer_src_root.get(), |
| 194 &layer_update); | 193 &layer_update); |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 /* Testing serialization of properties for a tree that looks like this: | 286 /* Testing serialization of properties for a tree that looks like this: |
| 288 root+ | 287 root+ |
| 289 \ | 288 \ |
| 290 b*+[mask:*] | 289 b*+[mask:*] |
| 291 \ | 290 \ |
| 292 c | 291 c |
| 293 Layers marked with * have changed properties. | 292 Layers marked with * have changed properties. |
| 294 Layers marked with + have descendants with changed properties. | 293 Layers marked with + have descendants with changed properties. |
| 295 Layer b also has a mask layer. | 294 Layer b also has a mask layer. |
| 296 */ | 295 */ |
| 297 scoped_refptr<Layer> layer_src_root = Layer::Create(LayerSettings()); | 296 scoped_refptr<Layer> layer_src_root = Layer::Create(); |
| 298 scoped_refptr<Layer> layer_src_b = Layer::Create(LayerSettings()); | 297 scoped_refptr<Layer> layer_src_b = Layer::Create(); |
| 299 scoped_refptr<Layer> layer_src_b_mask = Layer::Create(LayerSettings()); | 298 scoped_refptr<Layer> layer_src_b_mask = Layer::Create(); |
| 300 scoped_refptr<Layer> layer_src_c = Layer::Create(LayerSettings()); | 299 scoped_refptr<Layer> layer_src_c = Layer::Create(); |
| 301 layer_src_root->AddChild(layer_src_b); | 300 layer_src_root->AddChild(layer_src_b); |
| 302 layer_src_b->AddChild(layer_src_c); | 301 layer_src_b->AddChild(layer_src_c); |
| 303 layer_src_b->SetMaskLayer(layer_src_b_mask.get()); | 302 layer_src_b->SetMaskLayer(layer_src_b_mask.get()); |
| 304 | 303 |
| 305 proto::LayerUpdate layer_update; | 304 proto::LayerUpdate layer_update; |
| 306 LayerProtoConverter::SerializeLayerProperties(layer_src_root.get(), | 305 LayerProtoConverter::SerializeLayerProperties(layer_src_root.get(), |
| 307 &layer_update); | 306 &layer_update); |
| 308 // AddChild changes stacking order of child and we need to push proeprties of | 307 // AddChild changes stacking order of child and we need to push proeprties of |
| 309 // child. | 308 // child. |
| 310 ASSERT_EQ(3, layer_update.layers_size()); | 309 ASSERT_EQ(3, layer_update.layers_size()); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 root*+ | 353 root*+ |
| 355 / \ | 354 / \ |
| 356 a b+ | 355 a b+ |
| 357 \ | 356 \ |
| 358 c* | 357 c* |
| 359 Layers marked with * have changed properties. | 358 Layers marked with * have changed properties. |
| 360 Layers marked with + have descendants with changed properties. | 359 Layers marked with + have descendants with changed properties. |
| 361 */ | 360 */ |
| 362 proto::LayerUpdate updates; | 361 proto::LayerUpdate updates; |
| 363 | 362 |
| 364 scoped_refptr<Layer> root = Layer::Create(LayerSettings()); | 363 scoped_refptr<Layer> root = Layer::Create(); |
| 365 root->SetLayerTreeHost(layer_tree_host_.get()); | 364 root->SetLayerTreeHost(layer_tree_host_.get()); |
| 366 proto::LayerProperties* root_props = updates.add_layers(); | 365 proto::LayerProperties* root_props = updates.add_layers(); |
| 367 root_props->set_id(root->id()); | 366 root_props->set_id(root->id()); |
| 368 root_props->set_needs_push_properties(true); | 367 root_props->set_needs_push_properties(true); |
| 369 root_props->set_num_dependents_need_push_properties(1); | 368 root_props->set_num_dependents_need_push_properties(1); |
| 370 root_props->mutable_base(); | 369 root_props->mutable_base(); |
| 371 | 370 |
| 372 scoped_refptr<Layer> a = Layer::Create(LayerSettings()); | 371 scoped_refptr<Layer> a = Layer::Create(); |
| 373 a->SetLayerTreeHost(layer_tree_host_.get()); | 372 a->SetLayerTreeHost(layer_tree_host_.get()); |
| 374 proto::LayerProperties* a_props = updates.add_layers(); | 373 proto::LayerProperties* a_props = updates.add_layers(); |
| 375 a_props->set_id(a->id()); | 374 a_props->set_id(a->id()); |
| 376 a_props->set_needs_push_properties(false); | 375 a_props->set_needs_push_properties(false); |
| 377 a_props->set_num_dependents_need_push_properties(0); | 376 a_props->set_num_dependents_need_push_properties(0); |
| 378 root->AddChild(a); | 377 root->AddChild(a); |
| 379 | 378 |
| 380 scoped_refptr<Layer> b = Layer::Create(LayerSettings()); | 379 scoped_refptr<Layer> b = Layer::Create(); |
| 381 b->SetLayerTreeHost(layer_tree_host_.get()); | 380 b->SetLayerTreeHost(layer_tree_host_.get()); |
| 382 proto::LayerProperties* b_props = updates.add_layers(); | 381 proto::LayerProperties* b_props = updates.add_layers(); |
| 383 b_props->set_id(b->id()); | 382 b_props->set_id(b->id()); |
| 384 b_props->set_needs_push_properties(false); | 383 b_props->set_needs_push_properties(false); |
| 385 b_props->set_num_dependents_need_push_properties(1); | 384 b_props->set_num_dependents_need_push_properties(1); |
| 386 root->AddChild(b); | 385 root->AddChild(b); |
| 387 | 386 |
| 388 scoped_refptr<Layer> c = Layer::Create(LayerSettings()); | 387 scoped_refptr<Layer> c = Layer::Create(); |
| 389 c->SetLayerTreeHost(layer_tree_host_.get()); | 388 c->SetLayerTreeHost(layer_tree_host_.get()); |
| 390 proto::LayerProperties* c_props = updates.add_layers(); | 389 proto::LayerProperties* c_props = updates.add_layers(); |
| 391 c_props->set_id(c->id()); | 390 c_props->set_id(c->id()); |
| 392 c_props->set_needs_push_properties(true); | 391 c_props->set_needs_push_properties(true); |
| 393 c_props->set_num_dependents_need_push_properties(0); | 392 c_props->set_num_dependents_need_push_properties(0); |
| 394 c_props->mutable_base(); | 393 c_props->mutable_base(); |
| 395 b->AddChild(c); | 394 b->AddChild(c); |
| 396 | 395 |
| 397 LayerProtoConverter::DeserializeLayerProperties(root.get(), updates); | 396 LayerProtoConverter::DeserializeLayerProperties(root.get(), updates); |
| 398 | 397 |
| 399 EXPECT_TRUE(root->needs_push_properties()); | 398 EXPECT_TRUE(root->needs_push_properties()); |
| 400 EXPECT_TRUE(root->descendant_needs_push_properties()); | 399 EXPECT_TRUE(root->descendant_needs_push_properties()); |
| 401 | 400 |
| 402 EXPECT_FALSE(a->needs_push_properties()); | 401 EXPECT_FALSE(a->needs_push_properties()); |
| 403 EXPECT_FALSE(a->descendant_needs_push_properties()); | 402 EXPECT_FALSE(a->descendant_needs_push_properties()); |
| 404 | 403 |
| 405 EXPECT_FALSE(b->needs_push_properties()); | 404 EXPECT_FALSE(b->needs_push_properties()); |
| 406 EXPECT_TRUE(b->descendant_needs_push_properties()); | 405 EXPECT_TRUE(b->descendant_needs_push_properties()); |
| 407 | 406 |
| 408 EXPECT_TRUE(c->needs_push_properties()); | 407 EXPECT_TRUE(c->needs_push_properties()); |
| 409 EXPECT_FALSE(c->descendant_needs_push_properties()); | 408 EXPECT_FALSE(c->descendant_needs_push_properties()); |
| 410 | 409 |
| 411 // Recursively clear out LayerTreeHost. | 410 // Recursively clear out LayerTreeHost. |
| 412 root->SetLayerTreeHost(nullptr); | 411 root->SetLayerTreeHost(nullptr); |
| 413 } | 412 } |
| 414 | 413 |
| 415 TEST_F(LayerProtoConverterTest, PictureLayerTypeSerialization) { | 414 TEST_F(LayerProtoConverterTest, PictureLayerTypeSerialization) { |
| 416 // Make sure that PictureLayers serialize to the | 415 // Make sure that PictureLayers serialize to the |
| 417 // proto::LayerType::PICTURE_LAYER type. | 416 // proto::LayerType::PICTURE_LAYER type. |
| 418 scoped_refptr<PictureLayer> layer = PictureLayer::Create( | 417 scoped_refptr<PictureLayer> layer = |
| 419 LayerSettings(), EmptyContentLayerClient::GetInstance()); | 418 PictureLayer::Create(EmptyContentLayerClient::GetInstance()); |
| 420 | 419 |
| 421 proto::LayerNode layer_hierarchy; | 420 proto::LayerNode layer_hierarchy; |
| 422 LayerProtoConverter::SerializeLayerHierarchy(layer.get(), &layer_hierarchy); | 421 LayerProtoConverter::SerializeLayerHierarchy(layer.get(), &layer_hierarchy); |
| 423 EXPECT_EQ(proto::LayerNode::PICTURE_LAYER, layer_hierarchy.type()); | 422 EXPECT_EQ(proto::LayerNode::PICTURE_LAYER, layer_hierarchy.type()); |
| 424 } | 423 } |
| 425 | 424 |
| 426 TEST_F(LayerProtoConverterTest, PictureLayerTypeDeserialization) { | 425 TEST_F(LayerProtoConverterTest, PictureLayerTypeDeserialization) { |
| 427 // Make sure that proto::LayerType::PICTURE_LAYER ends up building a | 426 // Make sure that proto::LayerType::PICTURE_LAYER ends up building a |
| 428 // PictureLayer. | 427 // PictureLayer. |
| 429 scoped_refptr<Layer> old_root = PictureLayer::Create( | 428 scoped_refptr<Layer> old_root = |
| 430 LayerSettings(), EmptyContentLayerClient::GetInstance()); | 429 PictureLayer::Create(EmptyContentLayerClient::GetInstance()); |
| 431 proto::LayerNode root_node; | 430 proto::LayerNode root_node; |
| 432 root_node.set_id(old_root->id()); | 431 root_node.set_id(old_root->id()); |
| 433 root_node.set_type(proto::LayerNode::PICTURE_LAYER); | 432 root_node.set_type(proto::LayerNode::PICTURE_LAYER); |
| 434 | 433 |
| 435 scoped_refptr<Layer> new_root = | 434 scoped_refptr<Layer> new_root = |
| 436 LayerProtoConverter::DeserializeLayerHierarchy(old_root, root_node); | 435 LayerProtoConverter::DeserializeLayerHierarchy(old_root, root_node); |
| 437 | 436 |
| 438 // Validate that the ids are equal. | 437 // Validate that the ids are equal. |
| 439 EXPECT_EQ(old_root->id(), new_root->id()); | 438 EXPECT_EQ(old_root->id(), new_root->id()); |
| 440 | 439 |
| 441 // Check that the layer type is equal by using the type this layer would | 440 // Check that the layer type is equal by using the type this layer would |
| 442 // serialize to. | 441 // serialize to. |
| 443 proto::LayerNode layer_node; | 442 proto::LayerNode layer_node; |
| 444 new_root->SetTypeForProtoSerialization(&layer_node); | 443 new_root->SetTypeForProtoSerialization(&layer_node); |
| 445 EXPECT_EQ(proto::LayerNode::PICTURE_LAYER, layer_node.type()); | 444 EXPECT_EQ(proto::LayerNode::PICTURE_LAYER, layer_node.type()); |
| 446 } | 445 } |
| 447 | 446 |
| 448 TEST_F(LayerProtoConverterTest, HudLayerTypeSerialization) { | 447 TEST_F(LayerProtoConverterTest, HudLayerTypeSerialization) { |
| 449 // Make sure that PictureLayers serialize to the | 448 // Make sure that PictureLayers serialize to the |
| 450 // proto::LayerType::HEADS_UP_DISPLAY_LAYER type. | 449 // proto::LayerType::HEADS_UP_DISPLAY_LAYER type. |
| 451 scoped_refptr<HeadsUpDisplayLayer> layer = | 450 scoped_refptr<HeadsUpDisplayLayer> layer = HeadsUpDisplayLayer::Create(); |
| 452 HeadsUpDisplayLayer::Create(LayerSettings()); | |
| 453 | 451 |
| 454 proto::LayerNode layer_hierarchy; | 452 proto::LayerNode layer_hierarchy; |
| 455 LayerProtoConverter::SerializeLayerHierarchy(layer.get(), &layer_hierarchy); | 453 LayerProtoConverter::SerializeLayerHierarchy(layer.get(), &layer_hierarchy); |
| 456 EXPECT_EQ(proto::LayerNode::HEADS_UP_DISPLAY_LAYER, layer_hierarchy.type()); | 454 EXPECT_EQ(proto::LayerNode::HEADS_UP_DISPLAY_LAYER, layer_hierarchy.type()); |
| 457 } | 455 } |
| 458 | 456 |
| 459 TEST_F(LayerProtoConverterTest, HudLayerTypeDeserialization) { | 457 TEST_F(LayerProtoConverterTest, HudLayerTypeDeserialization) { |
| 460 // Make sure that proto::LayerType::HEADS_UP_DISPLAY_LAYER ends up building a | 458 // Make sure that proto::LayerType::HEADS_UP_DISPLAY_LAYER ends up building a |
| 461 // HeadsUpDisplayLayer. | 459 // HeadsUpDisplayLayer. |
| 462 scoped_refptr<Layer> old_root = HeadsUpDisplayLayer::Create(LayerSettings()); | 460 scoped_refptr<Layer> old_root = HeadsUpDisplayLayer::Create(); |
| 463 proto::LayerNode root_node; | 461 proto::LayerNode root_node; |
| 464 root_node.set_id(old_root->id()); | 462 root_node.set_id(old_root->id()); |
| 465 root_node.set_type(proto::LayerNode::HEADS_UP_DISPLAY_LAYER); | 463 root_node.set_type(proto::LayerNode::HEADS_UP_DISPLAY_LAYER); |
| 466 | 464 |
| 467 scoped_refptr<Layer> new_root = | 465 scoped_refptr<Layer> new_root = |
| 468 LayerProtoConverter::DeserializeLayerHierarchy(old_root, root_node); | 466 LayerProtoConverter::DeserializeLayerHierarchy(old_root, root_node); |
| 469 | 467 |
| 470 // Validate that the ids are equal. | 468 // Validate that the ids are equal. |
| 471 EXPECT_EQ(old_root->id(), new_root->id()); | 469 EXPECT_EQ(old_root->id(), new_root->id()); |
| 472 | 470 |
| 473 // Check that the layer type is equal by using the type this layer would | 471 // Check that the layer type is equal by using the type this layer would |
| 474 // serialize to. | 472 // serialize to. |
| 475 proto::LayerNode layer_node; | 473 proto::LayerNode layer_node; |
| 476 new_root->SetTypeForProtoSerialization(&layer_node); | 474 new_root->SetTypeForProtoSerialization(&layer_node); |
| 477 EXPECT_EQ(proto::LayerNode::HEADS_UP_DISPLAY_LAYER, layer_node.type()); | 475 EXPECT_EQ(proto::LayerNode::HEADS_UP_DISPLAY_LAYER, layer_node.type()); |
| 478 } | 476 } |
| 479 | 477 |
| 480 } // namespace | 478 } // namespace |
| 481 } // namespace cc | 479 } // namespace cc |
| OLD | NEW |