OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef CC_TREES_PROPERTY_TREE_H_ | 5 #ifndef CC_TREES_PROPERTY_TREE_H_ |
6 #define CC_TREES_PROPERTY_TREE_H_ | 6 #define CC_TREES_PROPERTY_TREE_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
564 DrawTransforms transforms; | 564 DrawTransforms transforms; |
565 | 565 |
566 // TODO(sunxd): Move screen space transforms here if it can improve | 566 // TODO(sunxd): Move screen space transforms here if it can improve |
567 // performance. | 567 // performance. |
568 DrawTransformData() | 568 DrawTransformData() |
569 : update_number(-1), | 569 : update_number(-1), |
570 target_id(EffectTree::kInvalidNodeId), | 570 target_id(EffectTree::kInvalidNodeId), |
571 transforms(gfx::Transform(), gfx::Transform()) {} | 571 transforms(gfx::Transform(), gfx::Transform()) {} |
572 }; | 572 }; |
573 | 573 |
| 574 struct ConditionalClip { |
| 575 bool is_clipped; |
| 576 gfx::RectF clip_rect; |
| 577 }; |
| 578 |
| 579 struct ClipRectData { |
| 580 int target_id; |
| 581 ConditionalClip clip; |
| 582 |
| 583 ClipRectData() : target_id(-1) {} |
| 584 }; |
| 585 |
574 struct PropertyTreesCachedData { | 586 struct PropertyTreesCachedData { |
575 int transform_tree_update_number; | 587 int transform_tree_update_number; |
576 std::vector<AnimationScaleData> animation_scales; | 588 std::vector<AnimationScaleData> animation_scales; |
577 mutable std::vector<std::vector<DrawTransformData>> draw_transforms; | 589 mutable std::vector<std::vector<DrawTransformData>> draw_transforms; |
578 | 590 |
579 PropertyTreesCachedData(); | 591 PropertyTreesCachedData(); |
580 ~PropertyTreesCachedData(); | 592 ~PropertyTreesCachedData(); |
581 }; | 593 }; |
582 | 594 |
583 class CC_EXPORT PropertyTrees final { | 595 class CC_EXPORT PropertyTrees final { |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
661 bool GetFromTarget(int transform_id, | 673 bool GetFromTarget(int transform_id, |
662 int effect_id, | 674 int effect_id, |
663 gfx::Transform* from_target) const; | 675 gfx::Transform* from_target) const; |
664 | 676 |
665 void ResetCachedData(); | 677 void ResetCachedData(); |
666 void UpdateTransformTreeUpdateNumber(); | 678 void UpdateTransformTreeUpdateNumber(); |
667 gfx::Transform ToScreenSpaceTransformWithoutSurfaceContentsScale( | 679 gfx::Transform ToScreenSpaceTransformWithoutSurfaceContentsScale( |
668 int transform_id, | 680 int transform_id, |
669 int effect_id) const; | 681 int effect_id) const; |
670 | 682 |
| 683 ClipRectData* FetchClipRectFromCache(int clip_id, int target_id); |
| 684 |
671 private: | 685 private: |
672 gfx::Vector2dF inner_viewport_container_bounds_delta_; | 686 gfx::Vector2dF inner_viewport_container_bounds_delta_; |
673 gfx::Vector2dF outer_viewport_container_bounds_delta_; | 687 gfx::Vector2dF outer_viewport_container_bounds_delta_; |
674 gfx::Vector2dF inner_viewport_scroll_bounds_delta_; | 688 gfx::Vector2dF inner_viewport_scroll_bounds_delta_; |
675 | 689 |
676 // GetDrawTransforms may change the value of cached_data_. | 690 // GetDrawTransforms may change the value of cached_data_. |
677 DrawTransforms& GetDrawTransforms(int transform_id, int effect_id) const; | 691 DrawTransforms& GetDrawTransforms(int transform_id, int effect_id) const; |
678 DrawTransformData& FetchDrawTransformsDataFromCache(int transform_id, | 692 DrawTransformData& FetchDrawTransformsDataFromCache(int transform_id, |
679 int effect_id) const; | 693 int effect_id) const; |
680 | 694 |
681 PropertyTreesCachedData cached_data_; | 695 PropertyTreesCachedData cached_data_; |
682 }; | 696 }; |
683 | 697 |
684 } // namespace cc | 698 } // namespace cc |
685 | 699 |
686 #endif // CC_TREES_PROPERTY_TREE_H_ | 700 #endif // CC_TREES_PROPERTY_TREE_H_ |
OLD | NEW |