| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/layer_tree_impl.h" | 5 #include "cc/trees/layer_tree_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 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 } | 480 } |
| 481 | 481 |
| 482 LayerImplList::reverse_iterator LayerTreeImpl::rbegin() { | 482 LayerImplList::reverse_iterator LayerTreeImpl::rbegin() { |
| 483 return layer_list_.rbegin(); | 483 return layer_list_.rbegin(); |
| 484 } | 484 } |
| 485 | 485 |
| 486 LayerImplList::reverse_iterator LayerTreeImpl::rend() { | 486 LayerImplList::reverse_iterator LayerTreeImpl::rend() { |
| 487 return layer_list_.rend(); | 487 return layer_list_.rend(); |
| 488 } | 488 } |
| 489 | 489 |
| 490 LayerImpl* LayerTreeImpl::LayerByElementId(ElementId element_id) const { |
| 491 auto iter = element_layers_map_.find(element_id); |
| 492 if (iter == element_layers_map_.end()) |
| 493 return nullptr; |
| 494 |
| 495 return iter->second; |
| 496 } |
| 497 |
| 490 void LayerTreeImpl::AddToElementMap(LayerImpl* layer) { | 498 void LayerTreeImpl::AddToElementMap(LayerImpl* layer) { |
| 491 if (!layer->element_id() || !layer->mutable_properties()) | 499 if (!layer->element_id()) |
| 492 return; | 500 return; |
| 493 | 501 |
| 494 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), | 502 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), |
| 495 "LayerTreeImpl::AddToElementMap", "element_id", | 503 "LayerTreeImpl::AddToElementMap", "element", |
| 496 layer->element_id(), "layer_id", layer->id()); | 504 layer->element_id().AsValue().release(), "layer_id", |
| 505 layer->id()); |
| 497 | 506 |
| 498 ElementLayers& layers = element_layers_map_[layer->element_id()]; | 507 element_layers_map_[layer->element_id()] = layer; |
| 499 if ((!layers.main || layer->IsActive()) && !layer->scrollable()) { | 508 |
| 500 layers.main = layer; | 509 layer_tree_host_impl_->animation_host()->RegisterElement( |
| 501 } else if ((!layers.scroll || layer->IsActive()) && layer->scrollable()) { | 510 layer->element_id(), |
| 502 TRACE_EVENT2("compositor-worker", "LayerTreeImpl::AddToElementMap scroll", | 511 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); |
| 503 "element_id", layer->element_id(), "layer_id", layer->id()); | |
| 504 layers.scroll = layer; | |
| 505 } | |
| 506 } | 512 } |
| 507 | 513 |
| 508 void LayerTreeImpl::RemoveFromElementMap(LayerImpl* layer) { | 514 void LayerTreeImpl::RemoveFromElementMap(LayerImpl* layer) { |
| 509 if (!layer->element_id()) | 515 if (!layer->element_id()) |
| 510 return; | 516 return; |
| 511 | 517 |
| 512 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), | 518 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), |
| 513 "LayerTreeImpl::RemoveFromElementMap", "element_id", | 519 "LayerTreeImpl::RemoveFromElementMap", "element", |
| 514 layer->element_id(), "layer_id", layer->id()); | 520 layer->element_id().AsValue().release(), "layer_id", |
| 521 layer->id()); |
| 515 | 522 |
| 516 ElementLayers& layers = element_layers_map_[layer->element_id()]; | 523 layer_tree_host_impl_->animation_host()->UnregisterElement( |
| 517 if (!layer->scrollable()) | 524 layer->element_id(), |
| 518 layers.main = nullptr; | 525 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); |
| 519 if (layer->scrollable()) | |
| 520 layers.scroll = nullptr; | |
| 521 | 526 |
| 522 if (!layers.main && !layers.scroll) | 527 element_layers_map_.erase(layer->element_id()); |
| 523 element_layers_map_.erase(layer->element_id()); | |
| 524 } | 528 } |
| 525 | 529 |
| 526 void LayerTreeImpl::AddToOpacityAnimationsMap(int id, float opacity) { | 530 void LayerTreeImpl::AddToOpacityAnimationsMap(int id, float opacity) { |
| 527 opacity_animations_map_[id] = opacity; | 531 opacity_animations_map_[id] = opacity; |
| 528 } | 532 } |
| 529 | 533 |
| 530 void LayerTreeImpl::AddToTransformAnimationsMap(int id, | 534 void LayerTreeImpl::AddToTransformAnimationsMap(int id, |
| 531 gfx::Transform transform) { | 535 gfx::Transform transform) { |
| 532 transform_animations_map_[id] = transform; | 536 transform_animations_map_[id] = transform; |
| 533 } | 537 } |
| 534 | 538 |
| 535 LayerTreeImpl::ElementLayers LayerTreeImpl::GetMutableLayers( | |
| 536 uint64_t element_id) { | |
| 537 auto iter = element_layers_map_.find(element_id); | |
| 538 if (iter == element_layers_map_.end()) | |
| 539 return ElementLayers(); | |
| 540 | |
| 541 return iter->second; | |
| 542 } | |
| 543 | |
| 544 LayerImpl* LayerTreeImpl::InnerViewportContainerLayer() const { | 539 LayerImpl* LayerTreeImpl::InnerViewportContainerLayer() const { |
| 545 return InnerViewportScrollLayer() | 540 return InnerViewportScrollLayer() |
| 546 ? InnerViewportScrollLayer()->scroll_clip_layer() | 541 ? InnerViewportScrollLayer()->scroll_clip_layer() |
| 547 : NULL; | 542 : NULL; |
| 548 } | 543 } |
| 549 | 544 |
| 550 LayerImpl* LayerTreeImpl::OuterViewportContainerLayer() const { | 545 LayerImpl* LayerTreeImpl::OuterViewportContainerLayer() const { |
| 551 return OuterViewportScrollLayer() | 546 return OuterViewportScrollLayer() |
| 552 ? OuterViewportScrollLayer()->scroll_clip_layer() | 547 ? OuterViewportScrollLayer()->scroll_clip_layer() |
| 553 : NULL; | 548 : NULL; |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 841 outer_viewport_scroll_layer_id_ = outer_viewport_scroll_layer_id; | 836 outer_viewport_scroll_layer_id_ = outer_viewport_scroll_layer_id; |
| 842 } | 837 } |
| 843 | 838 |
| 844 void LayerTreeImpl::ClearViewportLayers() { | 839 void LayerTreeImpl::ClearViewportLayers() { |
| 845 overscroll_elasticity_layer_id_ = Layer::INVALID_ID; | 840 overscroll_elasticity_layer_id_ = Layer::INVALID_ID; |
| 846 page_scale_layer_id_ = Layer::INVALID_ID; | 841 page_scale_layer_id_ = Layer::INVALID_ID; |
| 847 inner_viewport_scroll_layer_id_ = Layer::INVALID_ID; | 842 inner_viewport_scroll_layer_id_ = Layer::INVALID_ID; |
| 848 outer_viewport_scroll_layer_id_ = Layer::INVALID_ID; | 843 outer_viewport_scroll_layer_id_ = Layer::INVALID_ID; |
| 849 } | 844 } |
| 850 | 845 |
| 846 // For unit tests, we use the layer's id as its element id. |
| 847 static void SetElementIdForTesting(LayerImpl* layer) { |
| 848 layer->SetElementId(LayerIdToElementIdForTesting(layer->id())); |
| 849 } |
| 850 |
| 851 void LayerTreeImpl::SetElementIdsForTesting() { |
| 852 LayerListIterator<LayerImpl> it(root_layer_for_testing_); |
| 853 for (; it != LayerListIterator<LayerImpl>(nullptr); ++it) { |
| 854 SetElementIdForTesting(*it); |
| 855 } |
| 856 } |
| 857 |
| 851 bool LayerTreeImpl::UpdateDrawProperties(bool update_lcd_text) { | 858 bool LayerTreeImpl::UpdateDrawProperties(bool update_lcd_text) { |
| 852 if (!needs_update_draw_properties_) | 859 if (!needs_update_draw_properties_) |
| 853 return true; | 860 return true; |
| 854 | 861 |
| 855 // Calling UpdateDrawProperties must clear this flag, so there can be no | 862 // Calling UpdateDrawProperties must clear this flag, so there can be no |
| 856 // early outs before this. | 863 // early outs before this. |
| 857 needs_update_draw_properties_ = false; | 864 needs_update_draw_properties_ = false; |
| 858 | 865 |
| 859 // For max_texture_size. When the renderer is re-created in | 866 // For max_texture_size. When the renderer is re-created in |
| 860 // CreateAndSetRenderer, the needs update draw properties flag is set | 867 // CreateAndSetRenderer, the needs update draw properties flag is set |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1075 } | 1082 } |
| 1076 | 1083 |
| 1077 bool LayerTreeImpl::LayerNeedsPushPropertiesForTesting(LayerImpl* layer) { | 1084 bool LayerTreeImpl::LayerNeedsPushPropertiesForTesting(LayerImpl* layer) { |
| 1078 return layers_that_should_push_properties_.find(layer) != | 1085 return layers_that_should_push_properties_.find(layer) != |
| 1079 layers_that_should_push_properties_.end(); | 1086 layers_that_should_push_properties_.end(); |
| 1080 } | 1087 } |
| 1081 | 1088 |
| 1082 void LayerTreeImpl::RegisterLayer(LayerImpl* layer) { | 1089 void LayerTreeImpl::RegisterLayer(LayerImpl* layer) { |
| 1083 DCHECK(!LayerById(layer->id())); | 1090 DCHECK(!LayerById(layer->id())); |
| 1084 layer_id_map_[layer->id()] = layer; | 1091 layer_id_map_[layer->id()] = layer; |
| 1085 layer_tree_host_impl_->animation_host()->RegisterElement( | |
| 1086 layer->id(), | |
| 1087 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); | |
| 1088 } | 1092 } |
| 1089 | 1093 |
| 1090 void LayerTreeImpl::UnregisterLayer(LayerImpl* layer) { | 1094 void LayerTreeImpl::UnregisterLayer(LayerImpl* layer) { |
| 1091 DCHECK(LayerById(layer->id())); | 1095 DCHECK(LayerById(layer->id())); |
| 1092 layer_tree_host_impl_->animation_host()->UnregisterElement( | |
| 1093 layer->id(), | |
| 1094 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); | |
| 1095 layer_id_map_.erase(layer->id()); | 1096 layer_id_map_.erase(layer->id()); |
| 1096 } | 1097 } |
| 1097 | 1098 |
| 1098 // These manage ownership of the LayerImpl. | 1099 // These manage ownership of the LayerImpl. |
| 1099 void LayerTreeImpl::AddLayer(std::unique_ptr<LayerImpl> layer) { | 1100 void LayerTreeImpl::AddLayer(std::unique_ptr<LayerImpl> layer) { |
| 1100 DCHECK(std::find(layers_->begin(), layers_->end(), layer) == layers_->end()); | 1101 DCHECK(std::find(layers_->begin(), layers_->end(), layer) == layers_->end()); |
| 1101 layers_->push_back(std::move(layer)); | 1102 layers_->push_back(std::move(layer)); |
| 1102 set_needs_update_draw_properties(); | 1103 set_needs_update_draw_properties(); |
| 1103 } | 1104 } |
| 1104 | 1105 |
| (...skipping 859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1964 | 1965 |
| 1965 std::unique_ptr<PendingPageScaleAnimation> | 1966 std::unique_ptr<PendingPageScaleAnimation> |
| 1966 LayerTreeImpl::TakePendingPageScaleAnimation() { | 1967 LayerTreeImpl::TakePendingPageScaleAnimation() { |
| 1967 return std::move(pending_page_scale_animation_); | 1968 return std::move(pending_page_scale_animation_); |
| 1968 } | 1969 } |
| 1969 | 1970 |
| 1970 bool LayerTreeImpl::IsAnimatingFilterProperty(const LayerImpl* layer) const { | 1971 bool LayerTreeImpl::IsAnimatingFilterProperty(const LayerImpl* layer) const { |
| 1971 ElementListType list_type = | 1972 ElementListType list_type = |
| 1972 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; | 1973 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; |
| 1973 return layer_tree_host_impl_->animation_host()->IsAnimatingFilterProperty( | 1974 return layer_tree_host_impl_->animation_host()->IsAnimatingFilterProperty( |
| 1974 layer->id(), list_type); | 1975 layer->element_id(), list_type); |
| 1975 } | 1976 } |
| 1976 | 1977 |
| 1977 bool LayerTreeImpl::IsAnimatingOpacityProperty(const LayerImpl* layer) const { | 1978 bool LayerTreeImpl::IsAnimatingOpacityProperty(const LayerImpl* layer) const { |
| 1978 ElementListType list_type = | 1979 ElementListType list_type = |
| 1979 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; | 1980 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; |
| 1980 return layer_tree_host_impl_->animation_host()->IsAnimatingOpacityProperty( | 1981 return layer_tree_host_impl_->animation_host()->IsAnimatingOpacityProperty( |
| 1981 layer->id(), list_type); | 1982 layer->element_id(), list_type); |
| 1982 } | 1983 } |
| 1983 | 1984 |
| 1984 bool LayerTreeImpl::IsAnimatingTransformProperty(const LayerImpl* layer) const { | 1985 bool LayerTreeImpl::IsAnimatingTransformProperty(const LayerImpl* layer) const { |
| 1985 ElementListType list_type = | 1986 ElementListType list_type = |
| 1986 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; | 1987 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; |
| 1987 return layer_tree_host_impl_->animation_host()->IsAnimatingTransformProperty( | 1988 return layer_tree_host_impl_->animation_host()->IsAnimatingTransformProperty( |
| 1988 layer->id(), list_type); | 1989 layer->element_id(), list_type); |
| 1989 } | 1990 } |
| 1990 | 1991 |
| 1991 bool LayerTreeImpl::HasPotentiallyRunningFilterAnimation( | 1992 bool LayerTreeImpl::HasPotentiallyRunningFilterAnimation( |
| 1992 const LayerImpl* layer) const { | 1993 const LayerImpl* layer) const { |
| 1993 ElementListType list_type = | 1994 ElementListType list_type = |
| 1994 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; | 1995 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; |
| 1995 return layer_tree_host_impl_->animation_host() | 1996 return layer_tree_host_impl_->animation_host() |
| 1996 ->HasPotentiallyRunningFilterAnimation(layer->id(), list_type); | 1997 ->HasPotentiallyRunningFilterAnimation(layer->element_id(), list_type); |
| 1997 } | 1998 } |
| 1998 | 1999 |
| 1999 bool LayerTreeImpl::HasPotentiallyRunningOpacityAnimation( | 2000 bool LayerTreeImpl::HasPotentiallyRunningOpacityAnimation( |
| 2000 const LayerImpl* layer) const { | 2001 const LayerImpl* layer) const { |
| 2001 ElementListType list_type = | 2002 ElementListType list_type = |
| 2002 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; | 2003 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; |
| 2003 return layer_tree_host_impl_->animation_host() | 2004 return layer_tree_host_impl_->animation_host() |
| 2004 ->HasPotentiallyRunningOpacityAnimation(layer->id(), list_type); | 2005 ->HasPotentiallyRunningOpacityAnimation(layer->element_id(), list_type); |
| 2005 } | 2006 } |
| 2006 | 2007 |
| 2007 bool LayerTreeImpl::HasPotentiallyRunningTransformAnimation( | 2008 bool LayerTreeImpl::HasPotentiallyRunningTransformAnimation( |
| 2008 const LayerImpl* layer) const { | 2009 const LayerImpl* layer) const { |
| 2009 ElementListType list_type = | 2010 ElementListType list_type = |
| 2010 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; | 2011 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; |
| 2011 return layer_tree_host_impl_->animation_host() | 2012 return layer_tree_host_impl_->animation_host() |
| 2012 ->HasPotentiallyRunningTransformAnimation(layer->id(), list_type); | 2013 ->HasPotentiallyRunningTransformAnimation(layer->element_id(), list_type); |
| 2013 } | 2014 } |
| 2014 | 2015 |
| 2015 bool LayerTreeImpl::HasAnyAnimationTargetingProperty( | 2016 bool LayerTreeImpl::HasAnyAnimationTargetingProperty( |
| 2016 const LayerImpl* layer, | 2017 const LayerImpl* layer, |
| 2017 TargetProperty::Type property) const { | 2018 TargetProperty::Type property) const { |
| 2018 return layer_tree_host_impl_->animation_host() | 2019 return layer_tree_host_impl_->animation_host() |
| 2019 ->HasAnyAnimationTargetingProperty(layer->id(), property); | 2020 ->HasAnyAnimationTargetingProperty(layer->element_id(), property); |
| 2020 } | 2021 } |
| 2021 | 2022 |
| 2022 bool LayerTreeImpl::AnimationsPreserveAxisAlignment( | 2023 bool LayerTreeImpl::AnimationsPreserveAxisAlignment( |
| 2023 const LayerImpl* layer) const { | 2024 const LayerImpl* layer) const { |
| 2024 return layer_tree_host_impl_->animation_host() | 2025 return layer_tree_host_impl_->animation_host() |
| 2025 ->AnimationsPreserveAxisAlignment(layer->id()); | 2026 ->AnimationsPreserveAxisAlignment(layer->element_id()); |
| 2026 } | 2027 } |
| 2027 | 2028 |
| 2028 bool LayerTreeImpl::HasOnlyTranslationTransforms(const LayerImpl* layer) const { | 2029 bool LayerTreeImpl::HasOnlyTranslationTransforms(const LayerImpl* layer) const { |
| 2029 ElementListType list_type = | 2030 ElementListType list_type = |
| 2030 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; | 2031 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; |
| 2031 return layer_tree_host_impl_->animation_host()->HasOnlyTranslationTransforms( | 2032 return layer_tree_host_impl_->animation_host()->HasOnlyTranslationTransforms( |
| 2032 layer->id(), list_type); | 2033 layer->element_id(), list_type); |
| 2033 } | 2034 } |
| 2034 | 2035 |
| 2035 bool LayerTreeImpl::MaximumTargetScale(const LayerImpl* layer, | 2036 bool LayerTreeImpl::MaximumTargetScale(const LayerImpl* layer, |
| 2036 float* max_scale) const { | 2037 float* max_scale) const { |
| 2037 *max_scale = 0.f; | 2038 *max_scale = 0.f; |
| 2038 ElementListType list_type = | 2039 ElementListType list_type = |
| 2039 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; | 2040 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; |
| 2040 return layer_tree_host_impl_->animation_host()->MaximumTargetScale( | 2041 return layer_tree_host_impl_->animation_host()->MaximumTargetScale( |
| 2041 layer->id(), list_type, max_scale); | 2042 layer->element_id(), list_type, max_scale); |
| 2042 } | 2043 } |
| 2043 | 2044 |
| 2044 bool LayerTreeImpl::AnimationStartScale(const LayerImpl* layer, | 2045 bool LayerTreeImpl::AnimationStartScale(const LayerImpl* layer, |
| 2045 float* start_scale) const { | 2046 float* start_scale) const { |
| 2046 *start_scale = 0.f; | 2047 *start_scale = 0.f; |
| 2047 ElementListType list_type = | 2048 ElementListType list_type = |
| 2048 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; | 2049 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; |
| 2049 return layer_tree_host_impl_->animation_host()->AnimationStartScale( | 2050 return layer_tree_host_impl_->animation_host()->AnimationStartScale( |
| 2050 layer->id(), list_type, start_scale); | 2051 layer->element_id(), list_type, start_scale); |
| 2051 } | 2052 } |
| 2052 | 2053 |
| 2053 bool LayerTreeImpl::HasFilterAnimationThatInflatesBounds( | 2054 bool LayerTreeImpl::HasFilterAnimationThatInflatesBounds( |
| 2054 const LayerImpl* layer) const { | 2055 const LayerImpl* layer) const { |
| 2055 return layer_tree_host_impl_->animation_host() | 2056 return layer_tree_host_impl_->animation_host() |
| 2056 ->HasFilterAnimationThatInflatesBounds(layer->id()); | 2057 ->HasFilterAnimationThatInflatesBounds(layer->element_id()); |
| 2057 } | 2058 } |
| 2058 | 2059 |
| 2059 bool LayerTreeImpl::HasTransformAnimationThatInflatesBounds( | 2060 bool LayerTreeImpl::HasTransformAnimationThatInflatesBounds( |
| 2060 const LayerImpl* layer) const { | 2061 const LayerImpl* layer) const { |
| 2061 return layer_tree_host_impl_->animation_host() | 2062 return layer_tree_host_impl_->animation_host() |
| 2062 ->HasTransformAnimationThatInflatesBounds(layer->id()); | 2063 ->HasTransformAnimationThatInflatesBounds(layer->element_id()); |
| 2063 } | 2064 } |
| 2064 | 2065 |
| 2065 bool LayerTreeImpl::HasAnimationThatInflatesBounds( | 2066 bool LayerTreeImpl::HasAnimationThatInflatesBounds( |
| 2066 const LayerImpl* layer) const { | 2067 const LayerImpl* layer) const { |
| 2067 return layer_tree_host_impl_->animation_host() | 2068 return layer_tree_host_impl_->animation_host() |
| 2068 ->HasAnimationThatInflatesBounds(layer->id()); | 2069 ->HasAnimationThatInflatesBounds(layer->element_id()); |
| 2069 } | 2070 } |
| 2070 | 2071 |
| 2071 bool LayerTreeImpl::FilterAnimationBoundsForBox(const LayerImpl* layer, | 2072 bool LayerTreeImpl::FilterAnimationBoundsForBox(const LayerImpl* layer, |
| 2072 const gfx::BoxF& box, | 2073 const gfx::BoxF& box, |
| 2073 gfx::BoxF* bounds) const { | 2074 gfx::BoxF* bounds) const { |
| 2074 return layer_tree_host_impl_->animation_host()->FilterAnimationBoundsForBox( | 2075 return layer_tree_host_impl_->animation_host()->FilterAnimationBoundsForBox( |
| 2075 layer->id(), box, bounds); | 2076 layer->element_id(), box, bounds); |
| 2076 } | 2077 } |
| 2077 | 2078 |
| 2078 bool LayerTreeImpl::TransformAnimationBoundsForBox(const LayerImpl* layer, | 2079 bool LayerTreeImpl::TransformAnimationBoundsForBox(const LayerImpl* layer, |
| 2079 const gfx::BoxF& box, | 2080 const gfx::BoxF& box, |
| 2080 gfx::BoxF* bounds) const { | 2081 gfx::BoxF* bounds) const { |
| 2081 *bounds = gfx::BoxF(); | 2082 *bounds = gfx::BoxF(); |
| 2082 return layer_tree_host_impl_->animation_host() | 2083 return layer_tree_host_impl_->animation_host() |
| 2083 ->TransformAnimationBoundsForBox(layer->id(), box, bounds); | 2084 ->TransformAnimationBoundsForBox(layer->element_id(), box, bounds); |
| 2084 } | 2085 } |
| 2085 | 2086 |
| 2086 void LayerTreeImpl::ScrollAnimationAbort(bool needs_completion) { | 2087 void LayerTreeImpl::ScrollAnimationAbort(bool needs_completion) { |
| 2087 layer_tree_host_impl_->animation_host()->ScrollAnimationAbort( | 2088 layer_tree_host_impl_->animation_host()->ScrollAnimationAbort( |
| 2088 needs_completion); | 2089 needs_completion); |
| 2089 } | 2090 } |
| 2090 | 2091 |
| 2091 void LayerTreeImpl::ResetAllChangeTracking() { | 2092 void LayerTreeImpl::ResetAllChangeTracking() { |
| 2092 layers_that_should_push_properties_.clear(); | 2093 layers_that_should_push_properties_.clear(); |
| 2093 // Iterate over all layers, including masks and replicas. | 2094 // Iterate over all layers, including masks and replicas. |
| 2094 for (auto& layer : *layers_) | 2095 for (auto& layer : *layers_) |
| 2095 layer->ResetChangeTracking(); | 2096 layer->ResetChangeTracking(); |
| 2096 property_trees_.ResetAllChangeTracking(); | 2097 property_trees_.ResetAllChangeTracking(); |
| 2097 } | 2098 } |
| 2098 | 2099 |
| 2099 } // namespace cc | 2100 } // namespace cc |
| OLD | NEW |