| OLD | NEW |
| 1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 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.h" | 5 #include "cc/layers/layer.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/atomic_sequence_num.h" | 9 #include "base/atomic_sequence_num.h" |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 draws_content_(false), | 59 draws_content_(false), |
| 60 hide_layer_and_subtree_(false), | 60 hide_layer_and_subtree_(false), |
| 61 masks_to_bounds_(false), | 61 masks_to_bounds_(false), |
| 62 contents_opaque_(false), | 62 contents_opaque_(false), |
| 63 double_sided_(true), | 63 double_sided_(true), |
| 64 should_flatten_transform_(true), | 64 should_flatten_transform_(true), |
| 65 use_parent_backface_visibility_(false), | 65 use_parent_backface_visibility_(false), |
| 66 draw_checkerboard_for_missing_tiles_(false), | 66 draw_checkerboard_for_missing_tiles_(false), |
| 67 force_render_surface_(false), | 67 force_render_surface_(false), |
| 68 transform_is_invertible_(true), | 68 transform_is_invertible_(true), |
| 69 should_have_render_surface_(false), |
| 69 background_color_(0), | 70 background_color_(0), |
| 70 opacity_(1.f), | 71 opacity_(1.f), |
| 71 blend_mode_(SkXfermode::kSrcOver_Mode), | 72 blend_mode_(SkXfermode::kSrcOver_Mode), |
| 72 scroll_parent_(NULL), | 73 scroll_parent_(NULL), |
| 73 clip_parent_(NULL), | 74 clip_parent_(NULL), |
| 74 replica_layer_(NULL), | 75 replica_layer_(NULL), |
| 75 raster_scale_(0.f), | 76 raster_scale_(0.f), |
| 76 client_(NULL) { | 77 client_(NULL) { |
| 77 layer_animation_controller_ = LayerAnimationController::Create(layer_id_); | 78 layer_animation_controller_ = LayerAnimationController::Create(layer_id_); |
| 78 layer_animation_controller_->AddValueObserver(this); | 79 layer_animation_controller_->AddValueObserver(this); |
| (...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 902 layer->SetUseParentBackfaceVisibility(use_parent_backface_visibility_); | 903 layer->SetUseParentBackfaceVisibility(use_parent_backface_visibility_); |
| 903 if (!layer->TransformIsAnimatingOnImplOnly() && !TransformIsAnimating()) | 904 if (!layer->TransformIsAnimatingOnImplOnly() && !TransformIsAnimating()) |
| 904 layer->SetTransformAndInvertibility(transform_, transform_is_invertible_); | 905 layer->SetTransformAndInvertibility(transform_, transform_is_invertible_); |
| 905 DCHECK(!(TransformIsAnimating() && layer->TransformIsAnimatingOnImplOnly())); | 906 DCHECK(!(TransformIsAnimating() && layer->TransformIsAnimatingOnImplOnly())); |
| 906 layer->Set3dSortingContextId(sorting_context_id_); | 907 layer->Set3dSortingContextId(sorting_context_id_); |
| 907 layer->SetNumDescendantsThatDrawContent(num_descendants_that_draw_content_); | 908 layer->SetNumDescendantsThatDrawContent(num_descendants_that_draw_content_); |
| 908 | 909 |
| 909 layer->SetScrollClipLayer(scroll_clip_layer_id_); | 910 layer->SetScrollClipLayer(scroll_clip_layer_id_); |
| 910 layer->set_user_scrollable_horizontal(user_scrollable_horizontal_); | 911 layer->set_user_scrollable_horizontal(user_scrollable_horizontal_); |
| 911 layer->set_user_scrollable_vertical(user_scrollable_vertical_); | 912 layer->set_user_scrollable_vertical(user_scrollable_vertical_); |
| 913 layer->SetShouldHaveRenderSurface(ShouldHaveRenderSurface()); |
| 912 | 914 |
| 913 LayerImpl* scroll_parent = NULL; | 915 LayerImpl* scroll_parent = NULL; |
| 914 if (scroll_parent_) { | 916 if (scroll_parent_) { |
| 915 scroll_parent = layer->layer_tree_impl()->LayerById(scroll_parent_->id()); | 917 scroll_parent = layer->layer_tree_impl()->LayerById(scroll_parent_->id()); |
| 916 DCHECK(scroll_parent); | 918 DCHECK(scroll_parent); |
| 917 } | 919 } |
| 918 | 920 |
| 919 layer->SetScrollParent(scroll_parent); | 921 layer->SetScrollParent(scroll_parent); |
| 920 if (scroll_children_) { | 922 if (scroll_children_) { |
| 921 std::set<LayerImpl*>* scroll_children = new std::set<LayerImpl*>; | 923 std::set<LayerImpl*>* scroll_children = new std::set<LayerImpl*>; |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1071 } | 1073 } |
| 1072 | 1074 |
| 1073 scoped_refptr<base::debug::ConvertableToTraceFormat> Layer::TakeDebugInfo() { | 1075 scoped_refptr<base::debug::ConvertableToTraceFormat> Layer::TakeDebugInfo() { |
| 1074 if (client_) | 1076 if (client_) |
| 1075 return client_->TakeDebugInfo(); | 1077 return client_->TakeDebugInfo(); |
| 1076 else | 1078 else |
| 1077 return NULL; | 1079 return NULL; |
| 1078 } | 1080 } |
| 1079 | 1081 |
| 1080 void Layer::CreateRenderSurface() { | 1082 void Layer::CreateRenderSurface() { |
| 1081 DCHECK(!draw_properties_.render_surface); | 1083 DCHECK(!render_surface_); |
| 1082 draw_properties_.render_surface = make_scoped_ptr(new RenderSurface(this)); | 1084 render_surface_ = make_scoped_ptr(new RenderSurface(this)); |
| 1083 draw_properties_.render_target = this; | 1085 draw_properties_.render_target = this; |
| 1084 } | 1086 } |
| 1085 | 1087 |
| 1086 void Layer::ClearRenderSurface() { | 1088 void Layer::ClearRenderSurface() { |
| 1087 draw_properties_.render_surface.reset(); | 1089 render_surface_.reset(); |
| 1088 } | 1090 } |
| 1089 | 1091 |
| 1090 void Layer::ClearRenderSurfaceLayerList() { | 1092 void Layer::ClearRenderSurfaceLayerList() { |
| 1091 if (draw_properties_.render_surface) | 1093 if (render_surface_) |
| 1092 draw_properties_.render_surface->layer_list().clear(); | 1094 render_surface_->layer_list().clear(); |
| 1093 } | 1095 } |
| 1094 | 1096 |
| 1095 gfx::Vector2dF Layer::ScrollOffsetForAnimation() const { | 1097 gfx::Vector2dF Layer::ScrollOffsetForAnimation() const { |
| 1096 return TotalScrollOffset(); | 1098 return TotalScrollOffset(); |
| 1097 } | 1099 } |
| 1098 | 1100 |
| 1099 // On<Property>Animated is called due to an ongoing accelerated animation. | 1101 // On<Property>Animated is called due to an ongoing accelerated animation. |
| 1100 // Since this animation is also being run on the compositor thread, there | 1102 // Since this animation is also being run on the compositor thread, there |
| 1101 // is no need to request a commit to push this value over, so the value is | 1103 // is no need to request a commit to push this value over, so the value is |
| 1102 // set directly rather than by calling Set<Property>. | 1104 // set directly rather than by calling Set<Property>. |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1235 } | 1237 } |
| 1236 | 1238 |
| 1237 void Layer::RunMicroBenchmark(MicroBenchmark* benchmark) { | 1239 void Layer::RunMicroBenchmark(MicroBenchmark* benchmark) { |
| 1238 benchmark->RunOnLayer(this); | 1240 benchmark->RunOnLayer(this); |
| 1239 } | 1241 } |
| 1240 | 1242 |
| 1241 bool Layer::HasDelegatedContent() const { | 1243 bool Layer::HasDelegatedContent() const { |
| 1242 return false; | 1244 return false; |
| 1243 } | 1245 } |
| 1244 | 1246 |
| 1247 void Layer::SetShouldHaveRenderSurface(bool should_have) { |
| 1248 if (should_have_render_surface_ == should_have) |
| 1249 return; |
| 1250 should_have_render_surface_ = should_have; |
| 1251 SetNeedsPushProperties(); |
| 1252 } |
| 1253 |
| 1254 void Layer::SetRenderSurfaceActive(bool active) { |
| 1255 if (active) { |
| 1256 if (!render_surface_) |
| 1257 CreateRenderSurface(); |
| 1258 return; |
| 1259 } |
| 1260 ClearRenderSurface(); |
| 1261 } |
| 1262 |
| 1245 } // namespace cc | 1263 } // namespace cc |
| OLD | NEW |