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 <vector> | 7 #include <vector> |
8 | 8 |
9 #include "cc/base/math_util.h" | 9 #include "cc/base/math_util.h" |
10 #include "cc/layers/layer.h" | 10 #include "cc/layers/layer.h" |
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
580 gfx::Transform DrawTransformFromPropertyTrees(const Layer* layer, | 580 gfx::Transform DrawTransformFromPropertyTrees(const Layer* layer, |
581 const TransformTree& tree) { | 581 const TransformTree& tree) { |
582 return DrawTransformFromPropertyTreesInternal(layer, tree); | 582 return DrawTransformFromPropertyTreesInternal(layer, tree); |
583 } | 583 } |
584 | 584 |
585 gfx::Transform DrawTransformFromPropertyTrees(const LayerImpl* layer, | 585 gfx::Transform DrawTransformFromPropertyTrees(const LayerImpl* layer, |
586 const TransformTree& tree) { | 586 const TransformTree& tree) { |
587 return DrawTransformFromPropertyTreesInternal(layer, tree); | 587 return DrawTransformFromPropertyTreesInternal(layer, tree); |
588 } | 588 } |
589 | 589 |
| 590 gfx::Transform DrawTransformOfRenderSurfaceFromPropertyTrees( |
| 591 const RenderSurfaceImpl* render_surface, |
| 592 const TransformTree& tree) { |
| 593 const TransformNode* node = tree.Node(render_surface->TransformTreeIndex()); |
| 594 gfx::Transform render_surface_transform; |
| 595 const TransformNode* target_node = tree.Node(node->data.target_id); |
| 596 if (target_node->id == 1) |
| 597 target_node = tree.Node(0); |
| 598 tree.ComputeTransformWithDestinationSublayerScale(node->id, target_node->id, |
| 599 &render_surface_transform); |
| 600 render_surface_transform.Scale(1.0 / node->data.sublayer_scale.x(), |
| 601 1.0 / node->data.sublayer_scale.y()); |
| 602 return render_surface_transform; |
| 603 } |
| 604 |
590 template <typename LayerType> | 605 template <typename LayerType> |
591 gfx::Transform ScreenSpaceTransformFromPropertyTreesInternal( | 606 gfx::Transform ScreenSpaceTransformFromPropertyTreesInternal( |
592 LayerType* layer, | 607 LayerType* layer, |
593 const TransformTree& tree) { | 608 const TransformTree& tree) { |
594 gfx::Transform xform(1, 0, 0, 1, layer->offset_to_transform_parent().x(), | 609 gfx::Transform xform(1, 0, 0, 1, layer->offset_to_transform_parent().x(), |
595 layer->offset_to_transform_parent().y()); | 610 layer->offset_to_transform_parent().y()); |
596 if (layer->transform_tree_index() >= 0) { | 611 if (layer->transform_tree_index() >= 0) { |
597 gfx::Transform ssxform = | 612 gfx::Transform ssxform = |
598 tree.Node(layer->transform_tree_index())->data.to_screen; | 613 tree.Node(layer->transform_tree_index())->data.to_screen; |
599 xform.ConcatTransform(ssxform); | 614 xform.ConcatTransform(ssxform); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
669 if (static_cast<int>(layer->offset_to_transform_parent().x()) != | 684 if (static_cast<int>(layer->offset_to_transform_parent().x()) != |
670 layer->offset_to_transform_parent().x()) | 685 layer->offset_to_transform_parent().x()) |
671 return false; | 686 return false; |
672 if (static_cast<int>(layer->offset_to_transform_parent().y()) != | 687 if (static_cast<int>(layer->offset_to_transform_parent().y()) != |
673 layer->offset_to_transform_parent().y()) | 688 layer->offset_to_transform_parent().y()) |
674 return false; | 689 return false; |
675 return true; | 690 return true; |
676 } | 691 } |
677 | 692 |
678 } // namespace cc | 693 } // namespace cc |
OLD | NEW |