Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 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.h" | 5 #include "cc/layers/layer.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 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 359 | 359 |
| 360 void Layer::SetBounds(const gfx::Size& size) { | 360 void Layer::SetBounds(const gfx::Size& size) { |
| 361 DCHECK(IsPropertyChangeAllowed()); | 361 DCHECK(IsPropertyChangeAllowed()); |
| 362 if (bounds() == size) | 362 if (bounds() == size) |
| 363 return; | 363 return; |
| 364 bounds_ = size; | 364 bounds_ = size; |
| 365 | 365 |
| 366 if (!layer_tree_host_) | 366 if (!layer_tree_host_) |
| 367 return; | 367 return; |
| 368 | 368 |
| 369 if (masks_to_bounds()) | |
| 370 SetSubtreePropertyChanged(); | |
| 369 SetNeedsCommit(); | 371 SetNeedsCommit(); |
| 370 } | 372 } |
| 371 | 373 |
| 372 Layer* Layer::RootLayer() { | 374 Layer* Layer::RootLayer() { |
| 373 Layer* layer = this; | 375 Layer* layer = this; |
| 374 while (layer->parent()) | 376 while (layer->parent()) |
| 375 layer = layer->parent(); | 377 layer = layer->parent(); |
| 376 return layer; | 378 return layer; |
| 377 } | 379 } |
| 378 | 380 |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 629 | 631 |
| 630 void Layer::SetPosition(const gfx::PointF& position) { | 632 void Layer::SetPosition(const gfx::PointF& position) { |
| 631 DCHECK(IsPropertyChangeAllowed()); | 633 DCHECK(IsPropertyChangeAllowed()); |
| 632 if (position_ == position) | 634 if (position_ == position) |
| 633 return; | 635 return; |
| 634 position_ = position; | 636 position_ = position; |
| 635 | 637 |
| 636 if (!layer_tree_host_) | 638 if (!layer_tree_host_) |
| 637 return; | 639 return; |
| 638 | 640 |
| 641 SetSubtreePropertyChanged(); | |
| 639 if (TransformNode* transform_node = | 642 if (TransformNode* transform_node = |
| 640 layer_tree_host_->property_trees()->transform_tree.Node( | 643 layer_tree_host_->property_trees()->transform_tree.Node( |
| 641 transform_tree_index())) { | 644 transform_tree_index())) { |
| 642 if (transform_node->owner_id == id()) { | 645 if (transform_node->owner_id == id()) { |
| 643 transform_node->data.update_post_local_transform(position, | 646 transform_node->data.update_post_local_transform(position, |
| 644 transform_origin()); | 647 transform_origin()); |
| 645 transform_node->data.needs_local_transform_update = true; | 648 transform_node->data.needs_local_transform_update = true; |
| 649 transform_node->data.transform_changed = true; | |
| 646 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true); | 650 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true); |
| 647 SetNeedsCommitNoRebuild(); | 651 SetNeedsCommitNoRebuild(); |
| 648 return; | 652 return; |
| 649 } | 653 } |
| 650 } | 654 } |
| 651 | 655 |
| 652 SetNeedsCommit(); | 656 SetNeedsCommit(); |
| 653 } | 657 } |
| 654 | 658 |
| 655 bool Layer::IsContainerForFixedPositionLayers() const { | 659 bool Layer::IsContainerForFixedPositionLayers() const { |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 714 | 718 |
| 715 void Layer::SetTransformOrigin(const gfx::Point3F& transform_origin) { | 719 void Layer::SetTransformOrigin(const gfx::Point3F& transform_origin) { |
| 716 DCHECK(IsPropertyChangeAllowed()); | 720 DCHECK(IsPropertyChangeAllowed()); |
| 717 if (transform_origin_ == transform_origin) | 721 if (transform_origin_ == transform_origin) |
| 718 return; | 722 return; |
| 719 transform_origin_ = transform_origin; | 723 transform_origin_ = transform_origin; |
| 720 | 724 |
| 721 if (!layer_tree_host_) | 725 if (!layer_tree_host_) |
| 722 return; | 726 return; |
| 723 | 727 |
| 728 SetSubtreePropertyChanged(); | |
| 724 if (TransformNode* transform_node = | 729 if (TransformNode* transform_node = |
| 725 layer_tree_host_->property_trees()->transform_tree.Node( | 730 layer_tree_host_->property_trees()->transform_tree.Node( |
| 726 transform_tree_index())) { | 731 transform_tree_index())) { |
| 727 if (transform_node->owner_id == id()) { | 732 if (transform_node->owner_id == id()) { |
| 728 transform_node->data.update_pre_local_transform(transform_origin); | 733 transform_node->data.update_pre_local_transform(transform_origin); |
| 729 transform_node->data.update_post_local_transform(position(), | 734 transform_node->data.update_post_local_transform(position(), |
| 730 transform_origin); | 735 transform_origin); |
| 731 transform_node->data.needs_local_transform_update = true; | 736 transform_node->data.needs_local_transform_update = true; |
| 737 transform_node->data.transform_changed = true; | |
| 732 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true); | 738 layer_tree_host_->property_trees()->transform_tree.set_needs_update(true); |
| 733 SetNeedsCommitNoRebuild(); | 739 SetNeedsCommitNoRebuild(); |
| 734 return; | 740 return; |
| 735 } | 741 } |
| 736 } | 742 } |
| 737 | 743 |
| 738 SetNeedsCommit(); | 744 SetNeedsCommit(); |
| 739 } | 745 } |
| 740 | 746 |
| 741 bool Layer::AnimationsPreserveAxisAlignment() const { | 747 bool Layer::AnimationsPreserveAxisAlignment() const { |
| (...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1365 | 1371 |
| 1366 if (frame_timing_requests_dirty_) { | 1372 if (frame_timing_requests_dirty_) { |
| 1367 layer->SetFrameTimingRequests(frame_timing_requests_); | 1373 layer->SetFrameTimingRequests(frame_timing_requests_); |
| 1368 frame_timing_requests_dirty_ = false; | 1374 frame_timing_requests_dirty_ = false; |
| 1369 } | 1375 } |
| 1370 | 1376 |
| 1371 // Reset any state that should be cleared for the next update. | 1377 // Reset any state that should be cleared for the next update. |
| 1372 stacking_order_changed_ = false; | 1378 stacking_order_changed_ = false; |
| 1373 subtree_property_changed_ = false; | 1379 subtree_property_changed_ = false; |
| 1374 update_rect_ = gfx::Rect(); | 1380 update_rect_ = gfx::Rect(); |
| 1381 if (TransformNode* transform_node = | |
| 1382 layer_tree_host_->property_trees()->transform_tree.Node( | |
| 1383 transform_tree_index())) { | |
| 1384 transform_node->data.transform_changed = false; | |
|
ajuma
2016/02/12 23:57:03
When updating the transform tree, this gets propag
jaydasika
2016/02/16 22:30:36
Done.
| |
| 1385 } | |
| 1375 | 1386 |
| 1376 needs_push_properties_ = false; | 1387 needs_push_properties_ = false; |
| 1377 num_dependents_need_push_properties_ = 0; | 1388 num_dependents_need_push_properties_ = 0; |
| 1378 } | 1389 } |
| 1379 | 1390 |
| 1380 void Layer::SetTypeForProtoSerialization(proto::LayerNode* proto) const { | 1391 void Layer::SetTypeForProtoSerialization(proto::LayerNode* proto) const { |
| 1381 proto->set_type(proto::LayerType::LAYER); | 1392 proto->set_type(proto::LayerType::LAYER); |
| 1382 } | 1393 } |
| 1383 | 1394 |
| 1384 void Layer::ToLayerNodeProto(proto::LayerNode* proto) const { | 1395 void Layer::ToLayerNodeProto(proto::LayerNode* proto) const { |
| (...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2064 this, layer_tree_host_->property_trees()->transform_tree); | 2075 this, layer_tree_host_->property_trees()->transform_tree); |
| 2065 } | 2076 } |
| 2066 | 2077 |
| 2067 gfx::Transform Layer::screen_space_transform() const { | 2078 gfx::Transform Layer::screen_space_transform() const { |
| 2068 DCHECK_NE(transform_tree_index_, -1); | 2079 DCHECK_NE(transform_tree_index_, -1); |
| 2069 return ScreenSpaceTransformFromPropertyTrees( | 2080 return ScreenSpaceTransformFromPropertyTrees( |
| 2070 this, layer_tree_host_->property_trees()->transform_tree); | 2081 this, layer_tree_host_->property_trees()->transform_tree); |
| 2071 } | 2082 } |
| 2072 | 2083 |
| 2073 } // namespace cc | 2084 } // namespace cc |
| OLD | NEW |