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

Side by Side Diff: cc/trees/draw_property_utils.cc

Issue 2163823003: cc : Use effect id to decide if surface contents scale should be applied (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix_compile_error Created 4 years, 5 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 | « no previous file | cc/trees/layer_tree_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 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 DCHECK_EQ(effect_node->mask_layer_id, -1) << "layer: " << layer->id(); 51 DCHECK_EQ(effect_node->mask_layer_id, -1) << "layer: " << layer->id();
52 DCHECK_EQ(effect_node->replica_layer_id, -1) << "layer: " << layer->id(); 52 DCHECK_EQ(effect_node->replica_layer_id, -1) << "layer: " << layer->id();
53 DCHECK(effect_node->filters.IsEmpty()); 53 DCHECK(effect_node->filters.IsEmpty());
54 DCHECK(effect_node->background_filters.IsEmpty()); 54 DCHECK(effect_node->background_filters.IsEmpty());
55 } 55 }
56 56
57 void VerifySurfaceContentsScalesMatch(const int target_effect_id, 57 void VerifySurfaceContentsScalesMatch(const int target_effect_id,
58 const int target_transform_id, 58 const int target_transform_id,
59 const EffectTree& effect_tree, 59 const EffectTree& effect_tree,
60 const TransformTree& transform_tree) { 60 const TransformTree& transform_tree) {
61 if (target_effect_id == -1) {
62 // This can happen when PaintArtifactCompositor builds property trees as it
63 // doesn't set effect ids on clip nodes.
64 return;
65 }
61 const TransformNode* target_transform_node = 66 const TransformNode* target_transform_node =
62 transform_tree.Node(target_transform_id); 67 transform_tree.Node(target_transform_id);
63 const EffectNode* target_effect_node = effect_tree.Node(target_effect_id); 68 const EffectNode* target_effect_node = effect_tree.Node(target_effect_id);
64 DCHECK(target_transform_node->surface_contents_scale == 69 DCHECK(target_transform_node->surface_contents_scale ==
65 target_effect_node->surface_contents_scale) 70 target_effect_node->surface_contents_scale)
66 << " surface contents scale from transform tree: " 71 << " surface contents scale from transform tree: "
67 << target_transform_node->surface_contents_scale.ToString() 72 << target_transform_node->surface_contents_scale.ToString()
68 << " surface contents scale from effect tree: " 73 << " surface contents scale from effect tree: "
69 << target_effect_node->surface_contents_scale.ToString(); 74 << target_effect_node->surface_contents_scale.ToString();
70 } 75 }
(...skipping 22 matching lines...) Expand all
93 ContentsTargetEffectNode(layer->effect_tree_index(), effect_tree); 98 ContentsTargetEffectNode(layer->effect_tree_index(), effect_tree);
94 gfx::Transform clip_to_target; 99 gfx::Transform clip_to_target;
95 if (clip_node->target_transform_id > target_node_id) { 100 if (clip_node->target_transform_id > target_node_id) {
96 // In this case, layer has a scroll parent. We need to keep the scale 101 // In this case, layer has a scroll parent. We need to keep the scale
97 // at the layer's target but remove the scale at the scroll parent's 102 // at the layer's target but remove the scale at the scroll parent's
98 // target. 103 // target.
99 if (property_trees->ComputeTransformToTarget(clip_node->target_transform_id, 104 if (property_trees->ComputeTransformToTarget(clip_node->target_transform_id,
100 target_effect_node->id, 105 target_effect_node->id,
101 &clip_to_target)) { 106 &clip_to_target)) {
102 // We don't have to apply surface contents scale when target is root. 107 // We don't have to apply surface contents scale when target is root.
103 if (target_node_id != 0) { 108 if (target_effect_node->id != 1) {
104 PostConcatSurfaceContentsScale(target_effect_node, &clip_to_target); 109 PostConcatSurfaceContentsScale(target_effect_node, &clip_to_target);
105 #if DCHECK_IS_ON() 110 #if DCHECK_IS_ON()
106 const TransformTree& transform_tree = property_trees->transform_tree; 111 const TransformTree& transform_tree = property_trees->transform_tree;
107 VerifySurfaceContentsScalesMatch(layer->effect_tree_index(), 112 VerifySurfaceContentsScalesMatch(layer->effect_tree_index(),
108 target_node_id, effect_tree, 113 target_node_id, effect_tree,
109 transform_tree); 114 transform_tree);
110 #endif 115 #endif
111 } 116 }
112 117
113 const EffectNode* source_node = 118 const EffectNode* source_node =
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 const PropertyTrees* property_trees, 177 const PropertyTrees* property_trees,
173 int current_transform_id, 178 int current_transform_id,
174 int target_transform_id, 179 int target_transform_id,
175 int target_effect_id) { 180 int target_effect_id) {
176 gfx::Transform current_to_target; 181 gfx::Transform current_to_target;
177 if (!property_trees->ComputeTransformToTarget( 182 if (!property_trees->ComputeTransformToTarget(
178 current_transform_id, target_effect_id, &current_to_target)) 183 current_transform_id, target_effect_id, &current_to_target))
179 // If transform is not invertible, cannot apply clip. 184 // If transform is not invertible, cannot apply clip.
180 return ConditionalClip{false, gfx::RectF()}; 185 return ConditionalClip{false, gfx::RectF()};
181 // We don't have to apply surface contents scale when target is root. 186 // We don't have to apply surface contents scale when target is root.
182 if (target_transform_id != 0) { 187 if (target_effect_id != 1) {
183 const EffectTree& effect_tree = property_trees->effect_tree; 188 const EffectTree& effect_tree = property_trees->effect_tree;
184 const EffectNode* target_effect_node = effect_tree.Node(target_effect_id); 189 const EffectNode* target_effect_node = effect_tree.Node(target_effect_id);
185 PostConcatSurfaceContentsScale(target_effect_node, &current_to_target); 190 PostConcatSurfaceContentsScale(target_effect_node, &current_to_target);
186 #if DCHECK_IS_ON() 191 #if DCHECK_IS_ON()
187 const TransformTree& transform_tree = property_trees->transform_tree; 192 const TransformTree& transform_tree = property_trees->transform_tree;
188 VerifySurfaceContentsScalesMatch(target_effect_id, target_transform_id, 193 VerifySurfaceContentsScalesMatch(target_effect_id, target_transform_id,
189 effect_tree, transform_tree); 194 effect_tree, transform_tree);
190 #endif 195 #endif
191 } 196 }
192 197
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 } else { 519 } else {
515 bool success = transform_tree.ComputeTransform( 520 bool success = transform_tree.ComputeTransform(
516 target_node_id, transform_node->id, &target_to_layer); 521 target_node_id, transform_node->id, &target_to_layer);
517 if (!success) { 522 if (!success) {
518 // An animated singular transform may become non-singular during the 523 // An animated singular transform may become non-singular during the
519 // animation, so we still need to compute a visible rect. In this 524 // animation, so we still need to compute a visible rect. In this
520 // situation, we treat the entire layer as visible. 525 // situation, we treat the entire layer as visible.
521 layer->set_visible_layer_rect(gfx::Rect(layer_bounds)); 526 layer->set_visible_layer_rect(gfx::Rect(layer_bounds));
522 continue; 527 continue;
523 } 528 }
524 if (target_node_id != 0) { 529 const EffectNode* target_effect_node =
525 const EffectNode* target_effect_node = 530 ContentsTargetEffectNode(layer->effect_tree_index(), effect_tree);
526 ContentsTargetEffectNode(layer->effect_tree_index(), effect_tree); 531 if (target_effect_node->id != 1) {
527 ConcatInverseSurfaceContentsScale(target_effect_node, &target_to_layer); 532 ConcatInverseSurfaceContentsScale(target_effect_node, &target_to_layer);
528 #if DCHECK_IS_ON() 533 #if DCHECK_IS_ON()
529 VerifySurfaceContentsScalesMatch(target_effect_node->id, target_node_id, 534 VerifySurfaceContentsScalesMatch(target_effect_node->id, target_node_id,
530 effect_tree, transform_tree); 535 effect_tree, transform_tree);
531 #endif 536 #endif
532 } 537 }
533 } 538 }
534 gfx::Transform target_to_content; 539 gfx::Transform target_to_content;
535 target_to_content.Translate(-layer->offset_to_transform_parent().x(), 540 target_to_content.Translate(-layer->offset_to_transform_parent().x(),
536 -layer->offset_to_transform_parent().y()); 541 -layer->offset_to_transform_parent().y());
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
725 } 730 }
726 731
727 static void ResetIfHasNanCoordinate(gfx::RectF* rect) { 732 static void ResetIfHasNanCoordinate(gfx::RectF* rect) {
728 if (std::isnan(rect->x()) || std::isnan(rect->y()) || 733 if (std::isnan(rect->x()) || std::isnan(rect->y()) ||
729 std::isnan(rect->right()) || std::isnan(rect->bottom())) 734 std::isnan(rect->right()) || std::isnan(rect->bottom()))
730 *rect = gfx::RectF(); 735 *rect = gfx::RectF();
731 } 736 }
732 737
733 void PostConcatSurfaceContentsScale(const EffectNode* effect_node, 738 void PostConcatSurfaceContentsScale(const EffectNode* effect_node,
734 gfx::Transform* transform) { 739 gfx::Transform* transform) {
740 if (!effect_node) {
741 // This can happen when PaintArtifactCompositor builds property trees as it
742 // doesn't set effect ids on clip nodes.
743 return;
744 }
735 DCHECK(effect_node->has_render_surface); 745 DCHECK(effect_node->has_render_surface);
736 transform->matrix().postScale(effect_node->surface_contents_scale.x(), 746 transform->matrix().postScale(effect_node->surface_contents_scale.x(),
737 effect_node->surface_contents_scale.y(), 1.f); 747 effect_node->surface_contents_scale.y(), 1.f);
738 } 748 }
739 749
740 void ConcatInverseSurfaceContentsScale(const EffectNode* effect_node, 750 void ConcatInverseSurfaceContentsScale(const EffectNode* effect_node,
741 gfx::Transform* transform) { 751 gfx::Transform* transform) {
742 DCHECK(effect_node->has_render_surface); 752 DCHECK(effect_node->has_render_surface);
743 if (effect_node->surface_contents_scale.x() != 0.0 && 753 if (effect_node->surface_contents_scale.x() != 0.0 &&
744 effect_node->surface_contents_scale.y() != 0.0) 754 effect_node->surface_contents_scale.y() != 0.0)
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 parent_clip_node->combined_clip_in_target_space; 795 parent_clip_node->combined_clip_in_target_space;
786 gfx::RectF parent_clip_in_target_space = 796 gfx::RectF parent_clip_in_target_space =
787 parent_clip_node->clip_in_target_space; 797 parent_clip_node->clip_in_target_space;
788 if (parent_target_transform_node && 798 if (parent_target_transform_node &&
789 parent_target_transform_node->id != clip_node->target_transform_id && 799 parent_target_transform_node->id != clip_node->target_transform_id &&
790 non_root_surfaces_enabled) { 800 non_root_surfaces_enabled) {
791 success &= property_trees->ComputeTransformToTarget( 801 success &= property_trees->ComputeTransformToTarget(
792 parent_target_transform_node->id, clip_node->target_effect_id, 802 parent_target_transform_node->id, clip_node->target_effect_id,
793 &parent_to_current); 803 &parent_to_current);
794 // We don't have to apply surface contents scale when target is root. 804 // We don't have to apply surface contents scale when target is root.
795 if (clip_node->target_transform_id != 0) { 805 if (clip_node->target_effect_id != 1) {
796 const EffectNode* target_effect_node = 806 const EffectNode* target_effect_node =
797 effect_tree.Node(clip_node->target_effect_id); 807 effect_tree.Node(clip_node->target_effect_id);
798 PostConcatSurfaceContentsScale(target_effect_node, &parent_to_current); 808 PostConcatSurfaceContentsScale(target_effect_node, &parent_to_current);
799 #if DCHECK_IS_ON() 809 #if DCHECK_IS_ON()
800 VerifySurfaceContentsScalesMatch(clip_node->target_effect_id, 810 VerifySurfaceContentsScalesMatch(clip_node->target_effect_id,
801 clip_node->target_transform_id, 811 clip_node->target_transform_id,
802 effect_tree, transform_tree); 812 effect_tree, transform_tree);
803 #endif 813 #endif
804 } 814 }
805 if (parent_clip_node->target_transform_id != 0) { 815 if (parent_clip_node->target_effect_id != 1) {
806 const EffectNode* parent_target_effect_node = 816 const EffectNode* parent_target_effect_node =
807 effect_tree.Node(parent_clip_node->target_effect_id); 817 effect_tree.Node(parent_clip_node->target_effect_id);
808 ConcatInverseSurfaceContentsScale(parent_target_effect_node, 818 ConcatInverseSurfaceContentsScale(parent_target_effect_node,
809 &parent_to_current); 819 &parent_to_current);
810 #if DCHECK_IS_ON() 820 #if DCHECK_IS_ON()
811 VerifySurfaceContentsScalesMatch(parent_clip_node->target_effect_id, 821 VerifySurfaceContentsScalesMatch(parent_clip_node->target_effect_id,
812 parent_clip_node->target_transform_id, 822 parent_clip_node->target_transform_id,
813 effect_tree, transform_tree); 823 effect_tree, transform_tree);
814 #endif 824 #endif
815 } 825 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
865 875
866 if (!non_root_surfaces_enabled) { 876 if (!non_root_surfaces_enabled) {
867 source_to_target = transform_tree.ToScreen(clip_node->transform_id); 877 source_to_target = transform_tree.ToScreen(clip_node->transform_id);
868 } else if (transform_tree.ContentTargetId(transform_node->id) == 878 } else if (transform_tree.ContentTargetId(transform_node->id) ==
869 clip_node->target_transform_id) { 879 clip_node->target_transform_id) {
870 source_to_target = transform_tree.ToTarget(clip_node->transform_id); 880 source_to_target = transform_tree.ToTarget(clip_node->transform_id);
871 } else { 881 } else {
872 success = property_trees->ComputeTransformToTarget( 882 success = property_trees->ComputeTransformToTarget(
873 transform_node->id, clip_node->target_effect_id, &source_to_target); 883 transform_node->id, clip_node->target_effect_id, &source_to_target);
874 // We don't have to apply surface contents scale when target is root. 884 // We don't have to apply surface contents scale when target is root.
875 if (clip_node->target_transform_id != 0) { 885 if (clip_node->target_effect_id != 1) {
876 const EffectNode* target_effect_node = 886 const EffectNode* target_effect_node =
877 effect_tree.Node(clip_node->target_effect_id); 887 effect_tree.Node(clip_node->target_effect_id);
878 PostConcatSurfaceContentsScale(target_effect_node, &source_to_target); 888 PostConcatSurfaceContentsScale(target_effect_node, &source_to_target);
879 #if DCHECK_IS_ON() 889 #if DCHECK_IS_ON()
880 VerifySurfaceContentsScalesMatch(clip_node->target_effect_id, 890 VerifySurfaceContentsScalesMatch(clip_node->target_effect_id,
881 clip_node->target_transform_id, 891 clip_node->target_transform_id,
882 effect_tree, transform_tree); 892 effect_tree, transform_tree);
883 #endif 893 #endif
884 } 894 }
885 // source_to_target computation should be successful as target is an 895 // source_to_target computation should be successful as target is an
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
1026 PropertyTrees* property_trees) { 1036 PropertyTrees* property_trees) {
1027 const int source_id = layer->transform_tree_index(); 1037 const int source_id = layer->transform_tree_index();
1028 int destination_id = FindTargetTransformTreeIndexFromEffectTree( 1038 int destination_id = FindTargetTransformTreeIndexFromEffectTree(
1029 property_trees->effect_tree, layer->effect_tree_index()); 1039 property_trees->effect_tree, layer->effect_tree_index());
1030 const EffectNode* target_effect_node = ContentsTargetEffectNode( 1040 const EffectNode* target_effect_node = ContentsTargetEffectNode(
1031 layer->effect_tree_index(), property_trees->effect_tree); 1041 layer->effect_tree_index(), property_trees->effect_tree);
1032 gfx::Transform draw_transform; 1042 gfx::Transform draw_transform;
1033 property_trees->ComputeTransformToTarget(source_id, target_effect_node->id, 1043 property_trees->ComputeTransformToTarget(source_id, target_effect_node->id,
1034 &draw_transform); 1044 &draw_transform);
1035 // We don't have to apply surface contents scale when target is root. 1045 // We don't have to apply surface contents scale when target is root.
1036 if (destination_id != 0) { 1046 if (target_effect_node->id != 1) {
1037 PostConcatSurfaceContentsScale(target_effect_node, &draw_transform); 1047 PostConcatSurfaceContentsScale(target_effect_node, &draw_transform);
1038 #if DCHECK_IS_ON() 1048 #if DCHECK_IS_ON()
1039 VerifySurfaceContentsScalesMatch(layer->effect_tree_index(), destination_id, 1049 VerifySurfaceContentsScalesMatch(layer->effect_tree_index(), destination_id,
1040 property_trees->effect_tree, 1050 property_trees->effect_tree,
1041 property_trees->transform_tree); 1051 property_trees->transform_tree);
1042 #endif 1052 #endif
1043 } 1053 }
1044 if (layer->should_flatten_transform_from_property_tree()) 1054 if (layer->should_flatten_transform_from_property_tree())
1045 draw_transform.FlattenTo2d(); 1055 draw_transform.FlattenTo2d();
1046 draw_transform.Translate(layer->offset_to_transform_parent().x(), 1056 draw_transform.Translate(layer->offset_to_transform_parent().x(),
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
1220 transform_tree.Node(render_surface->TransformTreeIndex()); 1230 transform_tree.Node(render_surface->TransformTreeIndex());
1221 const EffectNode* effect_node = 1231 const EffectNode* effect_node =
1222 effect_tree.Node(render_surface->EffectTreeIndex()); 1232 effect_tree.Node(render_surface->EffectTreeIndex());
1223 // The draw transform of root render surface is identity tranform. 1233 // The draw transform of root render surface is identity tranform.
1224 if (transform_node->id == 1) { 1234 if (transform_node->id == 1) {
1225 render_surface->SetDrawTransform(gfx::Transform()); 1235 render_surface->SetDrawTransform(gfx::Transform());
1226 return; 1236 return;
1227 } 1237 }
1228 1238
1229 gfx::Transform render_surface_transform; 1239 gfx::Transform render_surface_transform;
1230 const TransformNode* target_transform_node =
1231 transform_tree.Node(transform_tree.TargetId(transform_node->id));
1232 const EffectNode* target_effect_node = 1240 const EffectNode* target_effect_node =
1233 effect_tree.Node(effect_node->target_id); 1241 effect_tree.Node(effect_node->target_id);
1234 property_trees->ComputeTransformToTarget( 1242 property_trees->ComputeTransformToTarget(
1235 transform_node->id, target_effect_node->id, &render_surface_transform); 1243 transform_node->id, target_effect_node->id, &render_surface_transform);
1236 // We don't have to apply surface contents scale when target is root. 1244 // We don't have to apply surface contents scale when target is root.
1237 if (target_transform_node->id != 0) { 1245 if (effect_node->target_id != 1) {
1238 PostConcatSurfaceContentsScale(target_effect_node, 1246 PostConcatSurfaceContentsScale(target_effect_node,
1239 &render_surface_transform); 1247 &render_surface_transform);
1240 #if DCHECK_IS_ON() 1248 #if DCHECK_IS_ON()
1249 const TransformNode* target_transform_node =
1250 transform_tree.Node(transform_tree.TargetId(transform_node->id));
1241 VerifySurfaceContentsScalesMatch(effect_node->target_id, 1251 VerifySurfaceContentsScalesMatch(effect_node->target_id,
1242 target_transform_node->id, effect_tree, 1252 target_transform_node->id, effect_tree,
1243 transform_tree); 1253 transform_tree);
1244 #endif 1254 #endif
1245 } 1255 }
1246 1256
1247 ConcatInverseSurfaceContentsScale(effect_node, &render_surface_transform); 1257 ConcatInverseSurfaceContentsScale(effect_node, &render_surface_transform);
1248 #if DCHECK_IS_ON() 1258 #if DCHECK_IS_ON()
1249 VerifySurfaceContentsScalesMatch(effect_node->id, transform_node->id, 1259 VerifySurfaceContentsScalesMatch(effect_node->id, transform_node->id,
1250 effect_tree, transform_tree); 1260 effect_tree, transform_tree);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1289 const bool success = property_trees->ComputeTransformToTarget( 1299 const bool success = property_trees->ComputeTransformToTarget(
1290 parent_clip_node->target_transform_id, target_effect_id, 1300 parent_clip_node->target_transform_id, target_effect_id,
1291 &clip_parent_target_to_target); 1301 &clip_parent_target_to_target);
1292 1302
1293 if (!success) { 1303 if (!success) {
1294 render_surface->SetClipRect(gfx::Rect()); 1304 render_surface->SetClipRect(gfx::Rect());
1295 return; 1305 return;
1296 } 1306 }
1297 1307
1298 // We don't have to apply surface contents scale when target is root. 1308 // We don't have to apply surface contents scale when target is root.
1299 if (transform_tree.TargetId(transform_node->id) != 0) { 1309 if (render_surface->EffectTreeIndex() != 1) {
1300 const EffectNode* effect_node = 1310 const EffectNode* effect_node =
1301 effect_tree.Node(render_surface->EffectTreeIndex()); 1311 effect_tree.Node(render_surface->EffectTreeIndex());
1302 PostConcatSurfaceContentsScale(effect_node, &clip_parent_target_to_target); 1312 PostConcatSurfaceContentsScale(effect_node, &clip_parent_target_to_target);
1303 #if DCHECK_IS_ON() 1313 #if DCHECK_IS_ON()
1304 VerifySurfaceContentsScalesMatch( 1314 VerifySurfaceContentsScalesMatch(
1305 render_surface->EffectTreeIndex(), 1315 render_surface->EffectTreeIndex(),
1306 transform_tree.TargetId(transform_node->id), effect_tree, 1316 transform_tree.TargetId(transform_node->id), effect_tree,
1307 transform_tree); 1317 transform_tree);
1308 #endif 1318 #endif
1309 } 1319 }
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1380 static gfx::Transform ReplicaToSurfaceTransform( 1390 static gfx::Transform ReplicaToSurfaceTransform(
1381 const RenderSurfaceImpl* render_surface, 1391 const RenderSurfaceImpl* render_surface,
1382 const PropertyTrees* property_trees) { 1392 const PropertyTrees* property_trees) {
1383 gfx::Transform replica_to_surface; 1393 gfx::Transform replica_to_surface;
1384 if (!render_surface->HasReplica()) 1394 if (!render_surface->HasReplica())
1385 return replica_to_surface; 1395 return replica_to_surface;
1386 const LayerImpl* replica_layer = render_surface->ReplicaLayer(); 1396 const LayerImpl* replica_layer = render_surface->ReplicaLayer();
1387 const EffectTree& effect_tree = property_trees->effect_tree; 1397 const EffectTree& effect_tree = property_trees->effect_tree;
1388 const EffectNode* surface_effect_node = 1398 const EffectNode* surface_effect_node =
1389 effect_tree.Node(render_surface->EffectTreeIndex()); 1399 effect_tree.Node(render_surface->EffectTreeIndex());
1390 if (render_surface->TransformTreeIndex() != 0) { 1400 if (render_surface->EffectTreeIndex() != 1) {
1391 replica_to_surface.Scale(surface_effect_node->surface_contents_scale.x(), 1401 replica_to_surface.Scale(surface_effect_node->surface_contents_scale.x(),
1392 surface_effect_node->surface_contents_scale.y()); 1402 surface_effect_node->surface_contents_scale.y());
1393 #if DCHECK_IS_ON() 1403 #if DCHECK_IS_ON()
1394 const TransformTree& transform_tree = property_trees->transform_tree; 1404 const TransformTree& transform_tree = property_trees->transform_tree;
1395 VerifySurfaceContentsScalesMatch(render_surface->EffectTreeIndex(), 1405 VerifySurfaceContentsScalesMatch(render_surface->EffectTreeIndex(),
1396 render_surface->TransformTreeIndex(), 1406 render_surface->TransformTreeIndex(),
1397 effect_tree, transform_tree); 1407 effect_tree, transform_tree);
1398 #endif 1408 #endif
1399 } 1409 }
1400 replica_to_surface.Translate(replica_layer->offset_to_transform_parent().x(), 1410 replica_to_surface.Translate(replica_layer->offset_to_transform_parent().x(),
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
1583 void UpdateElasticOverscroll(PropertyTrees* property_trees, 1593 void UpdateElasticOverscroll(PropertyTrees* property_trees,
1584 const Layer* overscroll_elasticity_layer, 1594 const Layer* overscroll_elasticity_layer,
1585 const gfx::Vector2dF& elastic_overscroll) { 1595 const gfx::Vector2dF& elastic_overscroll) {
1586 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, 1596 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer,
1587 elastic_overscroll); 1597 elastic_overscroll);
1588 } 1598 }
1589 1599
1590 } // namespace draw_property_utils 1600 } // namespace draw_property_utils
1591 1601
1592 } // namespace cc 1602 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/trees/layer_tree_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698