| 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 #include "cc/trees/draw_property_utils.h" | 5 #include "cc/trees/draw_property_utils.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 EffectNode* effect_node = | 47 EffectNode* effect_node = |
| 48 layer->layer_tree_impl()->property_trees()->effect_tree.Node( | 48 layer->layer_tree_impl()->property_trees()->effect_tree.Node( |
| 49 layer->effect_tree_index()); | 49 layer->effect_tree_index()); |
| 50 if (effect_node->owner_id != layer->id()) | 50 if (effect_node->owner_id != layer->id()) |
| 51 return; | 51 return; |
| 52 DCHECK_EQ(effect_node->mask_layer_id, -1) << "layer: " << layer->id(); | 52 DCHECK_EQ(effect_node->mask_layer_id, -1) << "layer: " << layer->id(); |
| 53 DCHECK_EQ(effect_node->replica_layer_id, -1) << "layer: " << layer->id(); | 53 DCHECK_EQ(effect_node->replica_layer_id, -1) << "layer: " << layer->id(); |
| 54 DCHECK(effect_node->background_filters.IsEmpty()); | 54 DCHECK(effect_node->background_filters.IsEmpty()); |
| 55 } | 55 } |
| 56 | 56 |
| 57 #endif | |
| 58 | |
| 59 static void ApplySublayerScale(const int effect_node_id, | |
| 60 const EffectTree& effect_tree, | |
| 61 gfx::Transform* transform) { | |
| 62 const EffectNode* effect_node = effect_tree.Node(effect_node_id); | |
| 63 const EffectNode* target_effect_node = | |
| 64 effect_node->has_render_surface | |
| 65 ? effect_node | |
| 66 : effect_tree.Node(effect_node->target_id); | |
| 67 transform->matrix().postScale(target_effect_node->sublayer_scale.x(), | |
| 68 target_effect_node->sublayer_scale.y(), 1.f); | |
| 69 } | |
| 70 | |
| 71 #if DCHECK_IS_ON() | |
| 72 void VerifySublayerScalesMatch(const int effect_node_id, | 57 void VerifySublayerScalesMatch(const int effect_node_id, |
| 73 const int target_transform_id, | 58 const int target_transform_id, |
| 74 const EffectTree& effect_tree, | 59 const EffectTree& effect_tree, |
| 75 const TransformTree& transform_tree) { | 60 const TransformTree& transform_tree) { |
| 76 const TransformNode* target_transform_node = | 61 const TransformNode* target_transform_node = |
| 77 transform_tree.Node(target_transform_id); | 62 transform_tree.Node(target_transform_id); |
| 78 const EffectNode* effect_node = effect_tree.Node(effect_node_id); | 63 const EffectNode* effect_node = effect_tree.Node(effect_node_id); |
| 79 const EffectNode* target_effect_node = | 64 const EffectNode* target_effect_node = |
| 80 effect_node->has_render_surface | 65 effect_node->has_render_surface |
| 81 ? effect_node | 66 ? effect_node |
| (...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 708 } | 693 } |
| 709 } | 694 } |
| 710 } | 695 } |
| 711 | 696 |
| 712 static void ResetIfHasNanCoordinate(gfx::RectF* rect) { | 697 static void ResetIfHasNanCoordinate(gfx::RectF* rect) { |
| 713 if (std::isnan(rect->x()) || std::isnan(rect->y()) || | 698 if (std::isnan(rect->x()) || std::isnan(rect->y()) || |
| 714 std::isnan(rect->right()) || std::isnan(rect->bottom())) | 699 std::isnan(rect->right()) || std::isnan(rect->bottom())) |
| 715 *rect = gfx::RectF(); | 700 *rect = gfx::RectF(); |
| 716 } | 701 } |
| 717 | 702 |
| 703 void ApplySublayerScale(const int effect_node_id, |
| 704 const EffectTree& effect_tree, |
| 705 gfx::Transform* transform) { |
| 706 const EffectNode* effect_node = effect_tree.Node(effect_node_id); |
| 707 const EffectNode* target_effect_node = |
| 708 effect_node->has_render_surface |
| 709 ? effect_node |
| 710 : effect_tree.Node(effect_node->target_id); |
| 711 transform->matrix().postScale(target_effect_node->sublayer_scale.x(), |
| 712 target_effect_node->sublayer_scale.y(), 1.f); |
| 713 } |
| 714 |
| 715 void RemoveSublayerScale(const int effect_node_id, |
| 716 const EffectTree& effect_tree, |
| 717 gfx::Transform* transform) { |
| 718 const EffectNode* effect_node = effect_tree.Node(effect_node_id); |
| 719 if (effect_node->sublayer_scale.x() != 0.0 && |
| 720 effect_node->sublayer_scale.y() != 0.0) |
| 721 transform->Scale(1.0 / effect_node->sublayer_scale.x(), |
| 722 1.0 / effect_node->sublayer_scale.y()); |
| 723 } |
| 724 |
| 718 void ComputeClips(ClipTree* clip_tree, | 725 void ComputeClips(ClipTree* clip_tree, |
| 719 const TransformTree& transform_tree, | 726 const TransformTree& transform_tree, |
| 720 const EffectTree& effect_tree, | 727 const EffectTree& effect_tree, |
| 721 bool non_root_surfaces_enabled) { | 728 bool non_root_surfaces_enabled) { |
| 722 if (!clip_tree->needs_update()) | 729 if (!clip_tree->needs_update()) |
| 723 return; | 730 return; |
| 724 for (int i = 1; i < static_cast<int>(clip_tree->size()); ++i) { | 731 for (int i = 1; i < static_cast<int>(clip_tree->size()); ++i) { |
| 725 ClipNode* clip_node = clip_tree->Node(i); | 732 ClipNode* clip_node = clip_tree->Node(i); |
| 726 | 733 |
| 727 if (clip_node->id == 1) { | 734 if (clip_node->id == 1) { |
| (...skipping 799 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1527 void UpdateElasticOverscroll(PropertyTrees* property_trees, | 1534 void UpdateElasticOverscroll(PropertyTrees* property_trees, |
| 1528 const Layer* overscroll_elasticity_layer, | 1535 const Layer* overscroll_elasticity_layer, |
| 1529 const gfx::Vector2dF& elastic_overscroll) { | 1536 const gfx::Vector2dF& elastic_overscroll) { |
| 1530 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, | 1537 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, |
| 1531 elastic_overscroll); | 1538 elastic_overscroll); |
| 1532 } | 1539 } |
| 1533 | 1540 |
| 1534 } // namespace draw_property_utils | 1541 } // namespace draw_property_utils |
| 1535 | 1542 |
| 1536 } // namespace cc | 1543 } // namespace cc |
| OLD | NEW |