Chromium Code Reviews| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 766 TransformNode* transform_node = transform_tree.Node(node->transform_id); | 766 TransformNode* transform_node = transform_tree.Node(node->transform_id); |
| 767 if (transform_node->is_invertible && | 767 if (transform_node->is_invertible && |
| 768 transform_node->ancestors_are_invertible) { | 768 transform_node->ancestors_are_invertible) { |
| 769 if (transform_node->sorting_context_id) { | 769 if (transform_node->sorting_context_id) { |
| 770 const TransformNode* parent_transform_node = | 770 const TransformNode* parent_transform_node = |
| 771 transform_tree.parent(transform_node); | 771 transform_tree.parent(transform_node); |
| 772 if (parent_transform_node && | 772 if (parent_transform_node && |
| 773 parent_transform_node->sorting_context_id == | 773 parent_transform_node->sorting_context_id == |
| 774 transform_node->sorting_context_id) { | 774 transform_node->sorting_context_id) { |
| 775 gfx::Transform surface_draw_transform; | 775 gfx::Transform surface_draw_transform; |
| 776 transform_tree.ComputeTransform( | 776 property_trees()->ComputeTransformToTarget( |
| 777 transform_node->id, transform_tree.TargetId(transform_node->id), | 777 transform_node->id, node->target_id, &surface_draw_transform); |
| 778 &surface_draw_transform); | |
| 779 node->hidden_by_backface_visibility = | 778 node->hidden_by_backface_visibility = |
| 780 surface_draw_transform.IsBackFaceVisible(); | 779 surface_draw_transform.IsBackFaceVisible(); |
| 781 } else { | 780 } else { |
| 782 node->hidden_by_backface_visibility = | 781 node->hidden_by_backface_visibility = |
| 783 transform_node->local.IsBackFaceVisible(); | 782 transform_node->local.IsBackFaceVisible(); |
| 784 } | 783 } |
| 785 return; | 784 return; |
| 786 } | 785 } |
| 787 } | 786 } |
| 788 } | 787 } |
| (...skipping 1080 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1869 gfx::Transform screen_space_transform = transform_tree.ToScreen(transform_id); | 1868 gfx::Transform screen_space_transform = transform_tree.ToScreen(transform_id); |
| 1870 const EffectNode* effect_node = effect_tree.Node(effect_id); | 1869 const EffectNode* effect_node = effect_tree.Node(effect_id); |
| 1871 | 1870 |
| 1872 if (effect_node->surface_contents_scale.x() != 0.0 && | 1871 if (effect_node->surface_contents_scale.x() != 0.0 && |
| 1873 effect_node->surface_contents_scale.y() != 0.0) | 1872 effect_node->surface_contents_scale.y() != 0.0) |
| 1874 screen_space_transform.Scale(1.0 / effect_node->surface_contents_scale.x(), | 1873 screen_space_transform.Scale(1.0 / effect_node->surface_contents_scale.x(), |
| 1875 1.0 / effect_node->surface_contents_scale.y()); | 1874 1.0 / effect_node->surface_contents_scale.y()); |
| 1876 return screen_space_transform; | 1875 return screen_space_transform; |
| 1877 } | 1876 } |
| 1878 | 1877 |
| 1878 bool PropertyTrees::ComputeTransformToTarget(int transform_id, | |
| 1879 int effect_id, | |
| 1880 gfx::Transform* transform) const { | |
| 1881 transform->MakeIdentity(); | |
| 1882 const EffectNode* effect_node = effect_tree.Node(effect_id); | |
| 1883 | |
| 1884 DCHECK(effect_node->has_render_surface || effect_node->id == 0); | |
| 1885 | |
| 1886 if (transform_id == effect_node->transform_id) | |
| 1887 return true; | |
| 1888 | |
| 1889 if (transform_id > effect_node->transform_id) { | |
| 1890 return transform_tree.CombineTransformsBetween( | |
| 1891 transform_id, effect_node->transform_id, transform); | |
| 1892 } | |
| 1893 | |
| 1894 return transform_tree.CombineInversesBetween( | |
| 1895 transform_id, effect_node->transform_id, transform); | |
|
ajuma
2016/07/22 13:45:38
Do we also need to handle the case where the two t
jaydasika
2016/07/22 15:59:52
This function calls CombineTransforms(/Inverses)Be
| |
| 1896 } | |
| 1897 | |
| 1879 } // namespace cc | 1898 } // namespace cc |
| OLD | NEW |