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

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

Issue 2049063002: Revert of Use element id's for animations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 | « cc/trees/layer_tree_impl.h ('k') | cc/trees/mutator_host_client.h » ('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 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 450 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 } 461 }
462 462
463 LayerListReverseIterator<LayerImpl> LayerTreeImpl::rbegin() { 463 LayerListReverseIterator<LayerImpl> LayerTreeImpl::rbegin() {
464 return LayerListReverseIterator<LayerImpl>(root_layer_); 464 return LayerListReverseIterator<LayerImpl>(root_layer_);
465 } 465 }
466 466
467 LayerListReverseIterator<LayerImpl> LayerTreeImpl::rend() { 467 LayerListReverseIterator<LayerImpl> LayerTreeImpl::rend() {
468 return LayerListReverseIterator<LayerImpl>(nullptr); 468 return LayerListReverseIterator<LayerImpl>(nullptr);
469 } 469 }
470 470
471 LayerImpl* LayerTreeImpl::LayerByElementId(ElementId element_id) const {
472 auto iter = element_layers_map_.find(element_id);
473 if (iter == element_layers_map_.end())
474 return nullptr;
475
476 return iter->second;
477 }
478
479 void LayerTreeImpl::AddToElementMap(LayerImpl* layer) { 471 void LayerTreeImpl::AddToElementMap(LayerImpl* layer) {
480 if (!layer->element_id()) 472 if (!layer->element_id() || !layer->mutable_properties())
481 return; 473 return;
482 474
483 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), 475 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"),
484 "LayerTreeImpl::AddToElementMap", "element", 476 "LayerTreeImpl::AddToElementMap", "element_id",
485 layer->element_id().AsValue().release(), "layer_id", 477 layer->element_id(), "layer_id", layer->id());
486 layer->id());
487 478
488 element_layers_map_[layer->element_id()] = layer; 479 ElementLayers& layers = element_layers_map_[layer->element_id()];
489 480 if ((!layers.main || layer->IsActive()) && !layer->scrollable()) {
490 layer_tree_host_impl_->animation_host()->RegisterElement( 481 layers.main = layer;
491 layer->element_id(), 482 } else if ((!layers.scroll || layer->IsActive()) && layer->scrollable()) {
492 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); 483 TRACE_EVENT2("compositor-worker", "LayerTreeImpl::AddToElementMap scroll",
484 "element_id", layer->element_id(), "layer_id", layer->id());
485 layers.scroll = layer;
486 }
493 } 487 }
494 488
495 void LayerTreeImpl::RemoveFromElementMap(LayerImpl* layer) { 489 void LayerTreeImpl::RemoveFromElementMap(LayerImpl* layer) {
496 if (!layer->element_id()) 490 if (!layer->element_id())
497 return; 491 return;
498 492
499 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), 493 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"),
500 "LayerTreeImpl::RemoveFromElementMap", "element", 494 "LayerTreeImpl::RemoveFromElementMap", "element_id",
501 layer->element_id().AsValue().release(), "layer_id", 495 layer->element_id(), "layer_id", layer->id());
502 layer->id());
503 496
504 layer_tree_host_impl_->animation_host()->UnregisterElement( 497 ElementLayers& layers = element_layers_map_[layer->element_id()];
505 layer->element_id(), 498 if (!layer->scrollable())
506 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); 499 layers.main = nullptr;
500 if (layer->scrollable())
501 layers.scroll = nullptr;
507 502
508 element_layers_map_.erase(layer->element_id()); 503 if (!layers.main && !layers.scroll)
504 element_layers_map_.erase(layer->element_id());
509 } 505 }
510 506
511 void LayerTreeImpl::AddToOpacityAnimationsMap(int id, float opacity) { 507 void LayerTreeImpl::AddToOpacityAnimationsMap(int id, float opacity) {
512 opacity_animations_map_[id] = opacity; 508 opacity_animations_map_[id] = opacity;
513 } 509 }
514 510
515 void LayerTreeImpl::AddToTransformAnimationsMap(int id, 511 void LayerTreeImpl::AddToTransformAnimationsMap(int id,
516 gfx::Transform transform) { 512 gfx::Transform transform) {
517 transform_animations_map_[id] = transform; 513 transform_animations_map_[id] = transform;
518 } 514 }
519 515
516 LayerTreeImpl::ElementLayers LayerTreeImpl::GetMutableLayers(
517 uint64_t element_id) {
518 auto iter = element_layers_map_.find(element_id);
519 if (iter == element_layers_map_.end())
520 return ElementLayers();
521
522 return iter->second;
523 }
524
520 LayerImpl* LayerTreeImpl::InnerViewportContainerLayer() const { 525 LayerImpl* LayerTreeImpl::InnerViewportContainerLayer() const {
521 return InnerViewportScrollLayer() 526 return InnerViewportScrollLayer()
522 ? InnerViewportScrollLayer()->scroll_clip_layer() 527 ? InnerViewportScrollLayer()->scroll_clip_layer()
523 : NULL; 528 : NULL;
524 } 529 }
525 530
526 LayerImpl* LayerTreeImpl::OuterViewportContainerLayer() const { 531 LayerImpl* LayerTreeImpl::OuterViewportContainerLayer() const {
527 return OuterViewportScrollLayer() 532 return OuterViewportScrollLayer()
528 ? OuterViewportScrollLayer()->scroll_clip_layer() 533 ? OuterViewportScrollLayer()->scroll_clip_layer()
529 : NULL; 534 : NULL;
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
808 outer_viewport_scroll_layer_id_ = outer_viewport_scroll_layer_id; 813 outer_viewport_scroll_layer_id_ = outer_viewport_scroll_layer_id;
809 } 814 }
810 815
811 void LayerTreeImpl::ClearViewportLayers() { 816 void LayerTreeImpl::ClearViewportLayers() {
812 overscroll_elasticity_layer_id_ = Layer::INVALID_ID; 817 overscroll_elasticity_layer_id_ = Layer::INVALID_ID;
813 page_scale_layer_id_ = Layer::INVALID_ID; 818 page_scale_layer_id_ = Layer::INVALID_ID;
814 inner_viewport_scroll_layer_id_ = Layer::INVALID_ID; 819 inner_viewport_scroll_layer_id_ = Layer::INVALID_ID;
815 outer_viewport_scroll_layer_id_ = Layer::INVALID_ID; 820 outer_viewport_scroll_layer_id_ = Layer::INVALID_ID;
816 } 821 }
817 822
818 // For unit tests, we use the layer's id as its element id.
819 static void SetElementIdForTesting(LayerImpl* layer) {
820 layer->SetElementId(LayerIdToElementIdForTesting(layer->id()));
821 }
822
823 void LayerTreeImpl::SetElementIdsForTesting() {
824 LayerTreeHostCommon::CallFunctionForEveryLayer(this, SetElementIdForTesting);
825 }
826
827 bool LayerTreeImpl::UpdateDrawProperties(bool update_lcd_text) { 823 bool LayerTreeImpl::UpdateDrawProperties(bool update_lcd_text) {
828 if (!needs_update_draw_properties_) 824 if (!needs_update_draw_properties_)
829 return true; 825 return true;
830 826
831 // Calling UpdateDrawProperties must clear this flag, so there can be no 827 // Calling UpdateDrawProperties must clear this flag, so there can be no
832 // early outs before this. 828 // early outs before this.
833 needs_update_draw_properties_ = false; 829 needs_update_draw_properties_ = false;
834 830
835 // For max_texture_size. When the renderer is re-created in 831 // For max_texture_size. When the renderer is re-created in
836 // CreateAndSetRenderer, the needs update draw properties flag is set 832 // CreateAndSetRenderer, the needs update draw properties flag is set
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
1049 } 1045 }
1050 1046
1051 bool LayerTreeImpl::LayerNeedsPushPropertiesForTesting(LayerImpl* layer) { 1047 bool LayerTreeImpl::LayerNeedsPushPropertiesForTesting(LayerImpl* layer) {
1052 return layers_that_should_push_properties_.find(layer) != 1048 return layers_that_should_push_properties_.find(layer) !=
1053 layers_that_should_push_properties_.end(); 1049 layers_that_should_push_properties_.end();
1054 } 1050 }
1055 1051
1056 void LayerTreeImpl::RegisterLayer(LayerImpl* layer) { 1052 void LayerTreeImpl::RegisterLayer(LayerImpl* layer) {
1057 DCHECK(!LayerById(layer->id())); 1053 DCHECK(!LayerById(layer->id()));
1058 layer_id_map_[layer->id()] = layer; 1054 layer_id_map_[layer->id()] = layer;
1055 layer_tree_host_impl_->animation_host()->RegisterElement(
1056 layer->id(),
1057 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING);
1059 } 1058 }
1060 1059
1061 void LayerTreeImpl::UnregisterLayer(LayerImpl* layer) { 1060 void LayerTreeImpl::UnregisterLayer(LayerImpl* layer) {
1062 DCHECK(LayerById(layer->id())); 1061 DCHECK(LayerById(layer->id()));
1062 layer_tree_host_impl_->animation_host()->UnregisterElement(
1063 layer->id(),
1064 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING);
1063 layer_id_map_.erase(layer->id()); 1065 layer_id_map_.erase(layer->id());
1064 DCHECK_NE(root_layer_, layer); 1066 DCHECK_NE(root_layer_, layer);
1065 } 1067 }
1066 1068
1067 // These manage ownership of the LayerImpl. 1069 // These manage ownership of the LayerImpl.
1068 void LayerTreeImpl::AddLayer(std::unique_ptr<LayerImpl> layer) { 1070 void LayerTreeImpl::AddLayer(std::unique_ptr<LayerImpl> layer) {
1069 DCHECK(std::find(layers_->begin(), layers_->end(), layer) == layers_->end()); 1071 DCHECK(std::find(layers_->begin(), layers_->end(), layer) == layers_->end());
1070 layers_->push_back(std::move(layer)); 1072 layers_->push_back(std::move(layer));
1071 set_needs_update_draw_properties(); 1073 set_needs_update_draw_properties();
1072 } 1074 }
(...skipping 869 matching lines...) Expand 10 before | Expand all | Expand 10 after
1942 1944
1943 std::unique_ptr<PendingPageScaleAnimation> 1945 std::unique_ptr<PendingPageScaleAnimation>
1944 LayerTreeImpl::TakePendingPageScaleAnimation() { 1946 LayerTreeImpl::TakePendingPageScaleAnimation() {
1945 return std::move(pending_page_scale_animation_); 1947 return std::move(pending_page_scale_animation_);
1946 } 1948 }
1947 1949
1948 bool LayerTreeImpl::IsAnimatingFilterProperty(const LayerImpl* layer) const { 1950 bool LayerTreeImpl::IsAnimatingFilterProperty(const LayerImpl* layer) const {
1949 ElementListType list_type = 1951 ElementListType list_type =
1950 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; 1952 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING;
1951 return layer_tree_host_impl_->animation_host()->IsAnimatingFilterProperty( 1953 return layer_tree_host_impl_->animation_host()->IsAnimatingFilterProperty(
1952 layer->element_id(), list_type); 1954 layer->id(), list_type);
1953 } 1955 }
1954 1956
1955 bool LayerTreeImpl::IsAnimatingOpacityProperty(const LayerImpl* layer) const { 1957 bool LayerTreeImpl::IsAnimatingOpacityProperty(const LayerImpl* layer) const {
1956 ElementListType list_type = 1958 ElementListType list_type =
1957 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; 1959 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING;
1958 return layer_tree_host_impl_->animation_host()->IsAnimatingOpacityProperty( 1960 return layer_tree_host_impl_->animation_host()->IsAnimatingOpacityProperty(
1959 layer->element_id(), list_type); 1961 layer->id(), list_type);
1960 } 1962 }
1961 1963
1962 bool LayerTreeImpl::IsAnimatingTransformProperty(const LayerImpl* layer) const { 1964 bool LayerTreeImpl::IsAnimatingTransformProperty(const LayerImpl* layer) const {
1963 ElementListType list_type = 1965 ElementListType list_type =
1964 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; 1966 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING;
1965 return layer_tree_host_impl_->animation_host()->IsAnimatingTransformProperty( 1967 return layer_tree_host_impl_->animation_host()->IsAnimatingTransformProperty(
1966 layer->element_id(), list_type); 1968 layer->id(), list_type);
1967 } 1969 }
1968 1970
1969 bool LayerTreeImpl::HasPotentiallyRunningFilterAnimation( 1971 bool LayerTreeImpl::HasPotentiallyRunningFilterAnimation(
1970 const LayerImpl* layer) const { 1972 const LayerImpl* layer) const {
1971 ElementListType list_type = 1973 ElementListType list_type =
1972 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; 1974 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING;
1973 return layer_tree_host_impl_->animation_host() 1975 return layer_tree_host_impl_->animation_host()
1974 ->HasPotentiallyRunningFilterAnimation(layer->element_id(), list_type); 1976 ->HasPotentiallyRunningFilterAnimation(layer->id(), list_type);
1975 } 1977 }
1976 1978
1977 bool LayerTreeImpl::HasPotentiallyRunningOpacityAnimation( 1979 bool LayerTreeImpl::HasPotentiallyRunningOpacityAnimation(
1978 const LayerImpl* layer) const { 1980 const LayerImpl* layer) const {
1979 ElementListType list_type = 1981 ElementListType list_type =
1980 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; 1982 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING;
1981 return layer_tree_host_impl_->animation_host() 1983 return layer_tree_host_impl_->animation_host()
1982 ->HasPotentiallyRunningOpacityAnimation(layer->element_id(), list_type); 1984 ->HasPotentiallyRunningOpacityAnimation(layer->id(), list_type);
1983 } 1985 }
1984 1986
1985 bool LayerTreeImpl::HasPotentiallyRunningTransformAnimation( 1987 bool LayerTreeImpl::HasPotentiallyRunningTransformAnimation(
1986 const LayerImpl* layer) const { 1988 const LayerImpl* layer) const {
1987 ElementListType list_type = 1989 ElementListType list_type =
1988 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; 1990 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING;
1989 return layer_tree_host_impl_->animation_host() 1991 return layer_tree_host_impl_->animation_host()
1990 ->HasPotentiallyRunningTransformAnimation(layer->element_id(), list_type); 1992 ->HasPotentiallyRunningTransformAnimation(layer->id(), list_type);
1991 } 1993 }
1992 1994
1993 bool LayerTreeImpl::HasAnyAnimationTargetingProperty( 1995 bool LayerTreeImpl::HasAnyAnimationTargetingProperty(
1994 const LayerImpl* layer, 1996 const LayerImpl* layer,
1995 TargetProperty::Type property) const { 1997 TargetProperty::Type property) const {
1996 return layer_tree_host_impl_->animation_host() 1998 return layer_tree_host_impl_->animation_host()
1997 ->HasAnyAnimationTargetingProperty(layer->element_id(), property); 1999 ->HasAnyAnimationTargetingProperty(layer->id(), property);
1998 } 2000 }
1999 2001
2000 bool LayerTreeImpl::AnimationsPreserveAxisAlignment( 2002 bool LayerTreeImpl::AnimationsPreserveAxisAlignment(
2001 const LayerImpl* layer) const { 2003 const LayerImpl* layer) const {
2002 return layer_tree_host_impl_->animation_host() 2004 return layer_tree_host_impl_->animation_host()
2003 ->AnimationsPreserveAxisAlignment(layer->element_id()); 2005 ->AnimationsPreserveAxisAlignment(layer->id());
2004 } 2006 }
2005 2007
2006 bool LayerTreeImpl::HasOnlyTranslationTransforms(const LayerImpl* layer) const { 2008 bool LayerTreeImpl::HasOnlyTranslationTransforms(const LayerImpl* layer) const {
2007 ElementListType list_type = 2009 ElementListType list_type =
2008 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; 2010 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING;
2009 return layer_tree_host_impl_->animation_host()->HasOnlyTranslationTransforms( 2011 return layer_tree_host_impl_->animation_host()->HasOnlyTranslationTransforms(
2010 layer->element_id(), list_type); 2012 layer->id(), list_type);
2011 } 2013 }
2012 2014
2013 bool LayerTreeImpl::MaximumTargetScale(const LayerImpl* layer, 2015 bool LayerTreeImpl::MaximumTargetScale(const LayerImpl* layer,
2014 float* max_scale) const { 2016 float* max_scale) const {
2015 *max_scale = 0.f; 2017 *max_scale = 0.f;
2016 ElementListType list_type = 2018 ElementListType list_type =
2017 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; 2019 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING;
2018 return layer_tree_host_impl_->animation_host()->MaximumTargetScale( 2020 return layer_tree_host_impl_->animation_host()->MaximumTargetScale(
2019 layer->element_id(), list_type, max_scale); 2021 layer->id(), list_type, max_scale);
2020 } 2022 }
2021 2023
2022 bool LayerTreeImpl::AnimationStartScale(const LayerImpl* layer, 2024 bool LayerTreeImpl::AnimationStartScale(const LayerImpl* layer,
2023 float* start_scale) const { 2025 float* start_scale) const {
2024 *start_scale = 0.f; 2026 *start_scale = 0.f;
2025 ElementListType list_type = 2027 ElementListType list_type =
2026 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING; 2028 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING;
2027 return layer_tree_host_impl_->animation_host()->AnimationStartScale( 2029 return layer_tree_host_impl_->animation_host()->AnimationStartScale(
2028 layer->element_id(), list_type, start_scale); 2030 layer->id(), list_type, start_scale);
2029 } 2031 }
2030 2032
2031 bool LayerTreeImpl::HasFilterAnimationThatInflatesBounds( 2033 bool LayerTreeImpl::HasFilterAnimationThatInflatesBounds(
2032 const LayerImpl* layer) const { 2034 const LayerImpl* layer) const {
2033 return layer_tree_host_impl_->animation_host() 2035 return layer_tree_host_impl_->animation_host()
2034 ->HasFilterAnimationThatInflatesBounds(layer->element_id()); 2036 ->HasFilterAnimationThatInflatesBounds(layer->id());
2035 } 2037 }
2036 2038
2037 bool LayerTreeImpl::HasTransformAnimationThatInflatesBounds( 2039 bool LayerTreeImpl::HasTransformAnimationThatInflatesBounds(
2038 const LayerImpl* layer) const { 2040 const LayerImpl* layer) const {
2039 return layer_tree_host_impl_->animation_host() 2041 return layer_tree_host_impl_->animation_host()
2040 ->HasTransformAnimationThatInflatesBounds(layer->element_id()); 2042 ->HasTransformAnimationThatInflatesBounds(layer->id());
2041 } 2043 }
2042 2044
2043 bool LayerTreeImpl::HasAnimationThatInflatesBounds( 2045 bool LayerTreeImpl::HasAnimationThatInflatesBounds(
2044 const LayerImpl* layer) const { 2046 const LayerImpl* layer) const {
2045 return layer_tree_host_impl_->animation_host() 2047 return layer_tree_host_impl_->animation_host()
2046 ->HasAnimationThatInflatesBounds(layer->element_id()); 2048 ->HasAnimationThatInflatesBounds(layer->id());
2047 } 2049 }
2048 2050
2049 bool LayerTreeImpl::FilterAnimationBoundsForBox(const LayerImpl* layer, 2051 bool LayerTreeImpl::FilterAnimationBoundsForBox(const LayerImpl* layer,
2050 const gfx::BoxF& box, 2052 const gfx::BoxF& box,
2051 gfx::BoxF* bounds) const { 2053 gfx::BoxF* bounds) const {
2052 return layer_tree_host_impl_->animation_host()->FilterAnimationBoundsForBox( 2054 return layer_tree_host_impl_->animation_host()->FilterAnimationBoundsForBox(
2053 layer->element_id(), box, bounds); 2055 layer->id(), box, bounds);
2054 } 2056 }
2055 2057
2056 bool LayerTreeImpl::TransformAnimationBoundsForBox(const LayerImpl* layer, 2058 bool LayerTreeImpl::TransformAnimationBoundsForBox(const LayerImpl* layer,
2057 const gfx::BoxF& box, 2059 const gfx::BoxF& box,
2058 gfx::BoxF* bounds) const { 2060 gfx::BoxF* bounds) const {
2059 *bounds = gfx::BoxF(); 2061 *bounds = gfx::BoxF();
2060 return layer_tree_host_impl_->animation_host() 2062 return layer_tree_host_impl_->animation_host()
2061 ->TransformAnimationBoundsForBox(layer->element_id(), box, bounds); 2063 ->TransformAnimationBoundsForBox(layer->id(), box, bounds);
2062 } 2064 }
2063 2065
2064 void LayerTreeImpl::ScrollAnimationAbort(bool needs_completion) { 2066 void LayerTreeImpl::ScrollAnimationAbort(bool needs_completion) {
2065 layer_tree_host_impl_->animation_host()->ScrollAnimationAbort( 2067 layer_tree_host_impl_->animation_host()->ScrollAnimationAbort(
2066 needs_completion); 2068 needs_completion);
2067 } 2069 }
2068 2070
2069 void LayerTreeImpl::ResetAllChangeTracking() { 2071 void LayerTreeImpl::ResetAllChangeTracking() {
2070 layers_that_should_push_properties_.clear(); 2072 layers_that_should_push_properties_.clear();
2071 for (auto* layer : *this) 2073 for (auto* layer : *this)
2072 layer->ResetChangeTracking(); 2074 layer->ResetChangeTracking();
2073 property_trees_.ResetAllChangeTracking(); 2075 property_trees_.ResetAllChangeTracking();
2074 } 2076 }
2075 2077
2076 } // namespace cc 2078 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | cc/trees/mutator_host_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698