Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/layers/layer_impl.h" | 5 #include "cc/layers/layer_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 153 } | 153 } |
| 154 | 154 |
| 155 void LayerImpl::SetClipTreeIndex(int index) { | 155 void LayerImpl::SetClipTreeIndex(int index) { |
| 156 clip_tree_index_ = index; | 156 clip_tree_index_ = index; |
| 157 } | 157 } |
| 158 | 158 |
| 159 void LayerImpl::SetEffectTreeIndex(int index) { | 159 void LayerImpl::SetEffectTreeIndex(int index) { |
| 160 effect_tree_index_ = index; | 160 effect_tree_index_ = index; |
| 161 } | 161 } |
| 162 | 162 |
| 163 int LayerImpl::render_target_effect_tree_index() const { | |
| 164 EffectNode* effect_node = | |
| 165 layer_tree_impl_->property_trees()->effect_tree.Node(effect_tree_index_); | |
| 166 if (effect_node->has_render_surface) | |
| 167 return effect_node->id; | |
| 168 else | |
| 169 return effect_node->target_id; | |
| 170 } | |
| 171 | |
| 163 void LayerImpl::SetScrollTreeIndex(int index) { | 172 void LayerImpl::SetScrollTreeIndex(int index) { |
| 164 scroll_tree_index_ = index; | 173 scroll_tree_index_ = index; |
| 165 } | 174 } |
| 166 | 175 |
| 167 void LayerImpl::ClearRenderSurfaceLayerList() { | 176 void LayerImpl::ClearRenderSurfaceLayerList() { |
| 168 if (render_surface_) | 177 if (render_surface_) |
| 169 render_surface_->ClearLayerLists(); | 178 render_surface_->ClearLayerLists(); |
| 170 } | 179 } |
| 171 | 180 |
| 172 void LayerImpl::PopulateSharedQuadState(SharedQuadState* state) const { | 181 void LayerImpl::PopulateSharedQuadState(SharedQuadState* state) const { |
| (...skipping 963 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1136 gfx::Rect LayerImpl::GetScaledEnclosingRectInTargetSpace(float scale) const { | 1145 gfx::Rect LayerImpl::GetScaledEnclosingRectInTargetSpace(float scale) const { |
| 1137 gfx::Transform scaled_draw_transform = DrawTransform(); | 1146 gfx::Transform scaled_draw_transform = DrawTransform(); |
| 1138 scaled_draw_transform.Scale(SK_MScalar1 / scale, SK_MScalar1 / scale); | 1147 scaled_draw_transform.Scale(SK_MScalar1 / scale, SK_MScalar1 / scale); |
| 1139 gfx::Size scaled_bounds = gfx::ScaleToCeiledSize(bounds(), scale); | 1148 gfx::Size scaled_bounds = gfx::ScaleToCeiledSize(bounds(), scale); |
| 1140 return MathUtil::MapEnclosingClippedRect(scaled_draw_transform, | 1149 return MathUtil::MapEnclosingClippedRect(scaled_draw_transform, |
| 1141 gfx::Rect(scaled_bounds)); | 1150 gfx::Rect(scaled_bounds)); |
| 1142 } | 1151 } |
| 1143 | 1152 |
| 1144 RenderSurfaceImpl* LayerImpl::render_target() { | 1153 RenderSurfaceImpl* LayerImpl::render_target() { |
| 1145 EffectTree& effect_tree = layer_tree_impl_->property_trees()->effect_tree; | 1154 EffectTree& effect_tree = layer_tree_impl_->property_trees()->effect_tree; |
| 1146 EffectNode* node = effect_tree.Node(effect_tree_index_); | 1155 EffectNode* effect_node = effect_tree.Node(render_target_effect_tree_index()); |
| 1147 | 1156 if (effect_node->render_surface) |
| 1148 if (node->render_surface) | 1157 return effect_node->render_surface; |
| 1149 return node->render_surface; | |
| 1150 else | 1158 else |
| 1151 return effect_tree.Node(node->target_id)->render_surface; | 1159 return effect_tree.Node(effect_node->target_id)->render_surface; |
| 1152 } | 1160 } |
| 1153 | 1161 |
| 1154 const RenderSurfaceImpl* LayerImpl::render_target() const { | 1162 const RenderSurfaceImpl* LayerImpl::render_target() const { |
| 1155 const EffectTree& effect_tree = | 1163 const EffectTree& effect_tree = |
| 1156 layer_tree_impl_->property_trees()->effect_tree; | 1164 layer_tree_impl_->property_trees()->effect_tree; |
| 1157 const EffectNode* node = effect_tree.Node(effect_tree_index_); | 1165 const EffectNode* effect_node = |
| 1158 | 1166 effect_tree.Node(render_target_effect_tree_index()); |
| 1159 if (node->render_surface) | 1167 if (effect_node->render_surface) |
| 1160 return node->render_surface; | 1168 return effect_node->render_surface; |
| 1161 else | 1169 else |
| 1162 return effect_tree.Node(node->target_id)->render_surface; | 1170 return effect_tree.Node(effect_node->target_id)->render_surface; |
|
jaydasika
2016/07/21 22:03:34
Is this change required ? If target_effect_tree_in
sunxd
2016/07/22 14:41:17
The render_target function is sometimes called bef
ajuma
2016/07/22 15:05:48
What's an example of such a callsite? One thing to
sunxd
2016/07/22 15:32:14
I think that's when we cannot render to separate s
| |
| 1163 } | 1171 } |
| 1164 | 1172 |
| 1165 bool LayerImpl::IsHidden() const { | 1173 bool LayerImpl::IsHidden() const { |
| 1166 EffectTree& effect_tree = layer_tree_impl_->property_trees()->effect_tree; | 1174 EffectTree& effect_tree = layer_tree_impl_->property_trees()->effect_tree; |
| 1167 EffectNode* node = effect_tree.Node(effect_tree_index_); | 1175 EffectNode* node = effect_tree.Node(effect_tree_index_); |
| 1168 return node->screen_space_opacity == 0.f; | 1176 return node->screen_space_opacity == 0.f; |
| 1169 } | 1177 } |
| 1170 | 1178 |
| 1171 bool LayerImpl::InsideReplica() const { | 1179 bool LayerImpl::InsideReplica() const { |
| 1172 // There are very few render targets so this should be cheap to do for each | 1180 // There are very few render targets so this should be cheap to do for each |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 1195 .layer_transforms_should_scale_layer_contents) { | 1203 .layer_transforms_should_scale_layer_contents) { |
| 1196 return default_scale; | 1204 return default_scale; |
| 1197 } | 1205 } |
| 1198 | 1206 |
| 1199 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents( | 1207 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents( |
| 1200 ScreenSpaceTransform(), default_scale); | 1208 ScreenSpaceTransform(), default_scale); |
| 1201 return std::max(transform_scales.x(), transform_scales.y()); | 1209 return std::max(transform_scales.x(), transform_scales.y()); |
| 1202 } | 1210 } |
| 1203 | 1211 |
| 1204 } // namespace cc | 1212 } // namespace cc |
| OLD | NEW |