Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Side by Side Diff: cc/layers/layer.cc

Issue 2616353003: Clarify property tree id-to-index map names. (Closed)
Patch Set: Sync to head. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/input/scrollbar_animation_controller_thinning.cc ('k') | cc/layers/layer_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 465
466 if (inputs_.opacity == opacity) 466 if (inputs_.opacity == opacity)
467 return; 467 return;
468 // We need to force a property tree rebuild when opacity changes from 1 to a 468 // We need to force a property tree rebuild when opacity changes from 1 to a
469 // non-1 value or vice-versa as render surfaces can change. 469 // non-1 value or vice-versa as render surfaces can change.
470 bool force_rebuild = opacity == 1.f || inputs_.opacity == 1.f; 470 bool force_rebuild = opacity == 1.f || inputs_.opacity == 1.f;
471 inputs_.opacity = opacity; 471 inputs_.opacity = opacity;
472 SetSubtreePropertyChanged(); 472 SetSubtreePropertyChanged();
473 if (layer_tree_host_ && !force_rebuild) { 473 if (layer_tree_host_ && !force_rebuild) {
474 PropertyTrees* property_trees = layer_tree_->property_trees(); 474 PropertyTrees* property_trees = layer_tree_->property_trees();
475 auto effect_id_to_index = property_trees->effect_id_to_index_map.find(id()); 475 auto effect_id_to_index =
476 if (effect_id_to_index != property_trees->effect_id_to_index_map.end()) { 476 property_trees->layer_id_to_effect_node_index.find(id());
477 if (effect_id_to_index !=
478 property_trees->layer_id_to_effect_node_index.end()) {
477 EffectNode* node = 479 EffectNode* node =
478 property_trees->effect_tree.Node(effect_id_to_index->second); 480 property_trees->effect_tree.Node(effect_id_to_index->second);
479 node->opacity = opacity; 481 node->opacity = opacity;
480 node->effect_changed = true; 482 node->effect_changed = true;
481 property_trees->effect_tree.set_needs_update(true); 483 property_trees->effect_tree.set_needs_update(true);
482 SetNeedsCommitNoRebuild(); 484 SetNeedsCommitNoRebuild();
483 return; 485 return;
484 } 486 }
485 } 487 }
486 SetNeedsCommit(); 488 SetNeedsCommit();
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 inputs_.position = position; 574 inputs_.position = position;
573 575
574 if (!layer_tree_host_) 576 if (!layer_tree_host_)
575 return; 577 return;
576 578
577 SetSubtreePropertyChanged(); 579 SetSubtreePropertyChanged();
578 PropertyTrees* property_trees = layer_tree_->property_trees(); 580 PropertyTrees* property_trees = layer_tree_->property_trees();
579 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 581 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
580 id())) { 582 id())) {
581 DCHECK_EQ(transform_tree_index(), 583 DCHECK_EQ(transform_tree_index(),
582 property_trees->transform_id_to_index_map[id()]); 584 property_trees->layer_id_to_transform_node_index[id()]);
583 TransformNode* transform_node = 585 TransformNode* transform_node =
584 property_trees->transform_tree.Node(transform_tree_index()); 586 property_trees->transform_tree.Node(transform_tree_index());
585 transform_node->update_post_local_transform(position, transform_origin()); 587 transform_node->update_post_local_transform(position, transform_origin());
586 if (transform_node->sticky_position_constraint_id >= 0) { 588 if (transform_node->sticky_position_constraint_id >= 0) {
587 StickyPositionNodeData* sticky_data = 589 StickyPositionNodeData* sticky_data =
588 property_trees->transform_tree.StickyPositionData( 590 property_trees->transform_tree.StickyPositionData(
589 transform_tree_index()); 591 transform_tree_index());
590 sticky_data->main_thread_offset = 592 sticky_data->main_thread_offset =
591 position.OffsetFromOrigin() - 593 position.OffsetFromOrigin() -
592 sticky_data->constraints.parent_relative_sticky_box_offset 594 sticky_data->constraints.parent_relative_sticky_box_offset
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 SetSubtreePropertyChanged(); 635 SetSubtreePropertyChanged();
634 if (layer_tree_host_) { 636 if (layer_tree_host_) {
635 PropertyTrees* property_trees = layer_tree_->property_trees(); 637 PropertyTrees* property_trees = layer_tree_->property_trees();
636 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 638 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
637 id())) { 639 id())) {
638 // We need to trigger a rebuild if we could have affected 2d axis 640 // We need to trigger a rebuild if we could have affected 2d axis
639 // alignment. We'll check to see if transform and inputs_.transform 641 // alignment. We'll check to see if transform and inputs_.transform
640 // are axis 642 // are axis
641 // align with respect to one another. 643 // align with respect to one another.
642 DCHECK_EQ(transform_tree_index(), 644 DCHECK_EQ(transform_tree_index(),
643 property_trees->transform_id_to_index_map[id()]); 645 property_trees->layer_id_to_transform_node_index[id()]);
644 TransformNode* transform_node = 646 TransformNode* transform_node =
645 property_trees->transform_tree.Node(transform_tree_index()); 647 property_trees->transform_tree.Node(transform_tree_index());
646 bool preserves_2d_axis_alignment = 648 bool preserves_2d_axis_alignment =
647 Are2dAxisAligned(inputs_.transform, transform); 649 Are2dAxisAligned(inputs_.transform, transform);
648 transform_node->local = transform; 650 transform_node->local = transform;
649 transform_node->needs_local_transform_update = true; 651 transform_node->needs_local_transform_update = true;
650 transform_node->transform_changed = true; 652 transform_node->transform_changed = true;
651 layer_tree_->property_trees()->transform_tree.set_needs_update(true); 653 layer_tree_->property_trees()->transform_tree.set_needs_update(true);
652 if (preserves_2d_axis_alignment) 654 if (preserves_2d_axis_alignment)
653 SetNeedsCommitNoRebuild(); 655 SetNeedsCommitNoRebuild();
(...skipping 16 matching lines...) Expand all
670 inputs_.transform_origin = transform_origin; 672 inputs_.transform_origin = transform_origin;
671 673
672 if (!layer_tree_host_) 674 if (!layer_tree_host_)
673 return; 675 return;
674 676
675 SetSubtreePropertyChanged(); 677 SetSubtreePropertyChanged();
676 PropertyTrees* property_trees = layer_tree_->property_trees(); 678 PropertyTrees* property_trees = layer_tree_->property_trees();
677 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 679 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
678 id())) { 680 id())) {
679 DCHECK_EQ(transform_tree_index(), 681 DCHECK_EQ(transform_tree_index(),
680 property_trees->transform_id_to_index_map[id()]); 682 property_trees->layer_id_to_transform_node_index[id()]);
681 TransformNode* transform_node = 683 TransformNode* transform_node =
682 property_trees->transform_tree.Node(transform_tree_index()); 684 property_trees->transform_tree.Node(transform_tree_index());
683 transform_node->update_pre_local_transform(transform_origin); 685 transform_node->update_pre_local_transform(transform_origin);
684 transform_node->update_post_local_transform(position(), transform_origin); 686 transform_node->update_post_local_transform(position(), transform_origin);
685 transform_node->needs_local_transform_update = true; 687 transform_node->needs_local_transform_update = true;
686 transform_node->transform_changed = true; 688 transform_node->transform_changed = true;
687 layer_tree_->property_trees()->transform_tree.set_needs_update(true); 689 layer_tree_->property_trees()->transform_tree.set_needs_update(true);
688 SetNeedsCommitNoRebuild(); 690 SetNeedsCommitNoRebuild();
689 return; 691 return;
690 } 692 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 if (!layer_tree_host_) 775 if (!layer_tree_host_)
774 return; 776 return;
775 777
776 PropertyTrees* property_trees = layer_tree_->property_trees(); 778 PropertyTrees* property_trees = layer_tree_->property_trees();
777 if (scroll_tree_index() != ScrollTree::kInvalidNodeId && scrollable()) 779 if (scroll_tree_index() != ScrollTree::kInvalidNodeId && scrollable())
778 property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset); 780 property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset);
779 781
780 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 782 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
781 id())) { 783 id())) {
782 DCHECK_EQ(transform_tree_index(), 784 DCHECK_EQ(transform_tree_index(),
783 property_trees->transform_id_to_index_map[id()]); 785 property_trees->layer_id_to_transform_node_index[id()]);
784 TransformNode* transform_node = 786 TransformNode* transform_node =
785 property_trees->transform_tree.Node(transform_tree_index()); 787 property_trees->transform_tree.Node(transform_tree_index());
786 transform_node->scroll_offset = CurrentScrollOffset(); 788 transform_node->scroll_offset = CurrentScrollOffset();
787 transform_node->needs_local_transform_update = true; 789 transform_node->needs_local_transform_update = true;
788 property_trees->transform_tree.set_needs_update(true); 790 property_trees->transform_tree.set_needs_update(true);
789 SetNeedsCommitNoRebuild(); 791 SetNeedsCommitNoRebuild();
790 return; 792 return;
791 } 793 }
792 794
793 SetNeedsCommit(); 795 SetNeedsCommit();
(...skipping 12 matching lines...) Expand all
806 808
807 bool needs_rebuild = true; 809 bool needs_rebuild = true;
808 810
809 PropertyTrees* property_trees = layer_tree_->property_trees(); 811 PropertyTrees* property_trees = layer_tree_->property_trees();
810 if (scroll_tree_index() != ScrollTree::kInvalidNodeId && scrollable()) 812 if (scroll_tree_index() != ScrollTree::kInvalidNodeId && scrollable())
811 property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset); 813 property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset);
812 814
813 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 815 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
814 id())) { 816 id())) {
815 DCHECK_EQ(transform_tree_index(), 817 DCHECK_EQ(transform_tree_index(),
816 property_trees->transform_id_to_index_map[id()]); 818 property_trees->layer_id_to_transform_node_index[id()]);
817 TransformNode* transform_node = 819 TransformNode* transform_node =
818 property_trees->transform_tree.Node(transform_tree_index()); 820 property_trees->transform_tree.Node(transform_tree_index());
819 transform_node->scroll_offset = CurrentScrollOffset(); 821 transform_node->scroll_offset = CurrentScrollOffset();
820 transform_node->needs_local_transform_update = true; 822 transform_node->needs_local_transform_update = true;
821 property_trees->transform_tree.set_needs_update(true); 823 property_trees->transform_tree.set_needs_update(true);
822 needs_rebuild = false; 824 needs_rebuild = false;
823 } 825 }
824 826
825 if (needs_rebuild) 827 if (needs_rebuild)
826 property_trees->needs_rebuild = true; 828 property_trees->needs_rebuild = true;
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after
1415 return; 1417 return;
1416 inputs_.opacity = opacity; 1418 inputs_.opacity = opacity;
1417 // Changing the opacity may make a previously hidden layer visible, so a new 1419 // Changing the opacity may make a previously hidden layer visible, so a new
1418 // recording may be needed. 1420 // recording may be needed.
1419 SetNeedsUpdate(); 1421 SetNeedsUpdate();
1420 if (layer_tree_host_) { 1422 if (layer_tree_host_) {
1421 PropertyTrees* property_trees = layer_tree_->property_trees(); 1423 PropertyTrees* property_trees = layer_tree_->property_trees();
1422 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, 1424 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT,
1423 id())) { 1425 id())) {
1424 DCHECK_EQ(effect_tree_index(), 1426 DCHECK_EQ(effect_tree_index(),
1425 property_trees->effect_id_to_index_map[id()]); 1427 property_trees->layer_id_to_effect_node_index[id()]);
1426 EffectNode* node = property_trees->effect_tree.Node(effect_tree_index()); 1428 EffectNode* node = property_trees->effect_tree.Node(effect_tree_index());
1427 node->opacity = opacity; 1429 node->opacity = opacity;
1428 property_trees->effect_tree.set_needs_update(true); 1430 property_trees->effect_tree.set_needs_update(true);
1429 } 1431 }
1430 } 1432 }
1431 } 1433 }
1432 1434
1433 void Layer::OnTransformAnimated(const gfx::Transform& transform) { 1435 void Layer::OnTransformAnimated(const gfx::Transform& transform) {
1434 if (inputs_.transform == transform) 1436 if (inputs_.transform == transform)
1435 return; 1437 return;
1436 inputs_.transform = transform; 1438 inputs_.transform = transform;
1437 // Changing the transform may change the visible part of this layer, so a new 1439 // Changing the transform may change the visible part of this layer, so a new
1438 // recording may be needed. 1440 // recording may be needed.
1439 SetNeedsUpdate(); 1441 SetNeedsUpdate();
1440 if (layer_tree_host_) { 1442 if (layer_tree_host_) {
1441 PropertyTrees* property_trees = layer_tree_->property_trees(); 1443 PropertyTrees* property_trees = layer_tree_->property_trees();
1442 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 1444 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
1443 id())) { 1445 id())) {
1444 DCHECK_EQ(transform_tree_index(), 1446 DCHECK_EQ(transform_tree_index(),
1445 property_trees->transform_id_to_index_map[id()]); 1447 property_trees->layer_id_to_transform_node_index[id()]);
1446 TransformNode* node = 1448 TransformNode* node =
1447 property_trees->transform_tree.Node(transform_tree_index()); 1449 property_trees->transform_tree.Node(transform_tree_index());
1448 node->local = transform; 1450 node->local = transform;
1449 node->needs_local_transform_update = true; 1451 node->needs_local_transform_update = true;
1450 node->has_potential_animation = true; 1452 node->has_potential_animation = true;
1451 property_trees->transform_tree.set_needs_update(true); 1453 property_trees->transform_tree.set_needs_update(true);
1452 } 1454 }
1453 } 1455 }
1454 } 1456 }
1455 1457
1456 void Layer::OnScrollOffsetAnimated(const gfx::ScrollOffset& scroll_offset) { 1458 void Layer::OnScrollOffsetAnimated(const gfx::ScrollOffset& scroll_offset) {
1457 // Do nothing. Scroll deltas will be sent from the compositor thread back 1459 // Do nothing. Scroll deltas will be sent from the compositor thread back
1458 // to the main thread in the same manner as during non-animated 1460 // to the main thread in the same manner as during non-animated
1459 // compositor-driven scrolling. 1461 // compositor-driven scrolling.
1460 } 1462 }
1461 1463
1462 void Layer::OnIsAnimatingChanged(const PropertyAnimationState& mask, 1464 void Layer::OnIsAnimatingChanged(const PropertyAnimationState& mask,
1463 const PropertyAnimationState& state) { 1465 const PropertyAnimationState& state) {
1464 DCHECK(layer_tree_host_); 1466 DCHECK(layer_tree_host_);
1465 PropertyTrees* property_trees = layer_tree_->property_trees(); 1467 PropertyTrees* property_trees = layer_tree_->property_trees();
1466 1468
1467 TransformNode* transform_node = nullptr; 1469 TransformNode* transform_node = nullptr;
1468 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, 1470 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
1469 id())) { 1471 id())) {
1470 DCHECK_EQ(transform_tree_index(), 1472 DCHECK_EQ(transform_tree_index(),
1471 property_trees->transform_id_to_index_map[id()]); 1473 property_trees->layer_id_to_transform_node_index[id()]);
1472 transform_node = 1474 transform_node =
1473 property_trees->transform_tree.Node(transform_tree_index()); 1475 property_trees->transform_tree.Node(transform_tree_index());
1474 } 1476 }
1475 1477
1476 EffectNode* effect_node = nullptr; 1478 EffectNode* effect_node = nullptr;
1477 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id())) { 1479 if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id())) {
1478 DCHECK_EQ(effect_tree_index(), 1480 DCHECK_EQ(effect_tree_index(),
1479 property_trees->effect_id_to_index_map[id()]); 1481 property_trees->layer_id_to_effect_node_index[id()]);
1480 effect_node = property_trees->effect_tree.Node(effect_tree_index()); 1482 effect_node = property_trees->effect_tree.Node(effect_tree_index());
1481 } 1483 }
1482 1484
1483 for (int property = TargetProperty::FIRST_TARGET_PROPERTY; 1485 for (int property = TargetProperty::FIRST_TARGET_PROPERTY;
1484 property <= TargetProperty::LAST_TARGET_PROPERTY; ++property) { 1486 property <= TargetProperty::LAST_TARGET_PROPERTY; ++property) {
1485 switch (property) { 1487 switch (property) {
1486 case TargetProperty::TRANSFORM: 1488 case TargetProperty::TRANSFORM:
1487 if (transform_node) { 1489 if (transform_node) {
1488 if (mask.currently_running[property]) 1490 if (mask.currently_running[property])
1489 transform_node->is_currently_animating = 1491 transform_node->is_currently_animating =
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
1663 1665
1664 LayerTree* Layer::GetLayerTree() const { 1666 LayerTree* Layer::GetLayerTree() const {
1665 return layer_tree_; 1667 return layer_tree_;
1666 } 1668 }
1667 1669
1668 void Layer::SetLayerIdForTesting(int id) { 1670 void Layer::SetLayerIdForTesting(int id) {
1669 inputs_.layer_id = id; 1671 inputs_.layer_id = id;
1670 } 1672 }
1671 1673
1672 } // namespace cc 1674 } // namespace cc
OLDNEW
« no previous file with comments | « cc/input/scrollbar_animation_controller_thinning.cc ('k') | cc/layers/layer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698