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 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 background_color_(0), | 65 background_color_(0), |
66 safe_opaque_background_color_(0), | 66 safe_opaque_background_color_(0), |
67 blend_mode_(SkXfermode::kSrcOver_Mode), | 67 blend_mode_(SkXfermode::kSrcOver_Mode), |
68 draw_blend_mode_(SkXfermode::kSrcOver_Mode), | 68 draw_blend_mode_(SkXfermode::kSrcOver_Mode), |
69 transform_tree_index_(-1), | 69 transform_tree_index_(-1), |
70 effect_tree_index_(-1), | 70 effect_tree_index_(-1), |
71 clip_tree_index_(-1), | 71 clip_tree_index_(-1), |
72 scroll_tree_index_(-1), | 72 scroll_tree_index_(-1), |
73 sorting_context_id_(0), | 73 sorting_context_id_(0), |
74 current_draw_mode_(DRAW_MODE_NONE), | 74 current_draw_mode_(DRAW_MODE_NONE), |
75 element_id_(0), | |
76 mutable_properties_(MutableProperty::kNone), | 75 mutable_properties_(MutableProperty::kNone), |
77 debug_info_(nullptr), | 76 debug_info_(nullptr), |
78 scrolls_drawn_descendant_(false), | 77 scrolls_drawn_descendant_(false), |
79 has_will_change_transform_hint_(false), | 78 has_will_change_transform_hint_(false), |
80 needs_push_properties_(false) { | 79 needs_push_properties_(false) { |
81 DCHECK_GT(layer_id_, 0); | 80 DCHECK_GT(layer_id_, 0); |
82 | 81 |
83 DCHECK(layer_tree_impl_); | 82 DCHECK(layer_tree_impl_); |
84 layer_tree_impl_->RegisterLayer(this); | 83 layer_tree_impl_->RegisterLayer(this); |
85 layer_tree_impl_->AddToElementMap(this); | 84 layer_tree_impl_->AddToElementMap(this); |
(...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
808 } | 807 } |
809 | 808 |
810 bool LayerImpl::OpacityIsAnimating() const { | 809 bool LayerImpl::OpacityIsAnimating() const { |
811 return layer_tree_impl_->IsAnimatingOpacityProperty(this); | 810 return layer_tree_impl_->IsAnimatingOpacityProperty(this); |
812 } | 811 } |
813 | 812 |
814 bool LayerImpl::HasPotentiallyRunningOpacityAnimation() const { | 813 bool LayerImpl::HasPotentiallyRunningOpacityAnimation() const { |
815 return layer_tree_impl_->HasPotentiallyRunningOpacityAnimation(this); | 814 return layer_tree_impl_->HasPotentiallyRunningOpacityAnimation(this); |
816 } | 815 } |
817 | 816 |
818 void LayerImpl::SetElementId(uint64_t element_id) { | 817 void LayerImpl::SetElementId(ElementId element_id) { |
819 if (element_id == element_id_) | 818 if (element_id == element_id_) |
820 return; | 819 return; |
821 | 820 |
822 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), | 821 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), |
823 "LayerImpl::SetElementId", "id", element_id); | 822 "LayerImpl::SetElementId", "element", |
| 823 element_id.AsValue().release()); |
824 | 824 |
825 layer_tree_impl_->RemoveFromElementMap(this); | 825 layer_tree_impl_->RemoveFromElementMap(this); |
826 element_id_ = element_id; | 826 element_id_ = element_id; |
827 layer_tree_impl_->AddToElementMap(this); | 827 layer_tree_impl_->AddToElementMap(this); |
| 828 |
| 829 SetNeedsPushProperties(); |
828 } | 830 } |
829 | 831 |
830 void LayerImpl::SetMutableProperties(uint32_t properties) { | 832 void LayerImpl::SetMutableProperties(uint32_t properties) { |
831 if (mutable_properties_ == properties) | 833 if (mutable_properties_ == properties) |
832 return; | 834 return; |
833 | 835 |
834 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), | 836 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), |
835 "LayerImpl::SetMutableProperties", "properties", properties); | 837 "LayerImpl::SetMutableProperties", "properties", properties); |
836 | 838 |
837 mutable_properties_ = properties; | 839 mutable_properties_ = properties; |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
997 MathUtil::AddToTracedValue("bounds", bounds_, state); | 999 MathUtil::AddToTracedValue("bounds", bounds_, state); |
998 | 1000 |
999 state->SetDouble("opacity", Opacity()); | 1001 state->SetDouble("opacity", Opacity()); |
1000 | 1002 |
1001 MathUtil::AddToTracedValue("position", position_, state); | 1003 MathUtil::AddToTracedValue("position", position_, state); |
1002 | 1004 |
1003 state->SetInteger("draws_content", DrawsContent()); | 1005 state->SetInteger("draws_content", DrawsContent()); |
1004 state->SetInteger("gpu_memory_usage", | 1006 state->SetInteger("gpu_memory_usage", |
1005 base::saturated_cast<int>(GPUMemoryUsageInBytes())); | 1007 base::saturated_cast<int>(GPUMemoryUsageInBytes())); |
1006 | 1008 |
1007 if (mutable_properties_ != MutableProperty::kNone) { | 1009 if (element_id_) |
1008 state->SetInteger("element_id", base::saturated_cast<int>(element_id_)); | 1010 element_id_.AddToTracedValue(state); |
| 1011 |
| 1012 if (mutable_properties_ != MutableProperty::kNone) |
1009 state->SetInteger("mutable_properties", mutable_properties_); | 1013 state->SetInteger("mutable_properties", mutable_properties_); |
1010 } | |
1011 | 1014 |
1012 MathUtil::AddToTracedValue("scroll_offset", CurrentScrollOffset(), state); | 1015 MathUtil::AddToTracedValue("scroll_offset", CurrentScrollOffset(), state); |
1013 | 1016 |
1014 if (!transform().IsIdentity()) | 1017 if (!transform().IsIdentity()) |
1015 MathUtil::AddToTracedValue("transform", transform(), state); | 1018 MathUtil::AddToTracedValue("transform", transform(), state); |
1016 | 1019 |
1017 bool clipped; | 1020 bool clipped; |
1018 gfx::QuadF layer_quad = | 1021 gfx::QuadF layer_quad = |
1019 MathUtil::MapQuad(ScreenSpaceTransform(), | 1022 MathUtil::MapQuad(ScreenSpaceTransform(), |
1020 gfx::QuadF(gfx::RectF(gfx::Rect(bounds()))), &clipped); | 1023 gfx::QuadF(gfx::RectF(gfx::Rect(bounds()))), &clipped); |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1204 .layer_transforms_should_scale_layer_contents) { | 1207 .layer_transforms_should_scale_layer_contents) { |
1205 return default_scale; | 1208 return default_scale; |
1206 } | 1209 } |
1207 | 1210 |
1208 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents( | 1211 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents( |
1209 ScreenSpaceTransform(), default_scale); | 1212 ScreenSpaceTransform(), default_scale); |
1210 return std::max(transform_scales.x(), transform_scales.y()); | 1213 return std::max(transform_scales.x(), transform_scales.y()); |
1211 } | 1214 } |
1212 | 1215 |
1213 } // namespace cc | 1216 } // namespace cc |
OLD | NEW |