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

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

Issue 2877033002: Fix cc scrollbar layer issues with initialization, and use element ids throughout. (Closed)
Patch Set: none Created 3 years, 7 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/property_tree.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 566 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 layer->element_id().AsValue().release(), "layer_id", 577 layer->element_id().AsValue().release(), "layer_id",
578 layer->id()); 578 layer->id());
579 579
580 layer_tree_host_impl_->mutator_host()->UnregisterElement( 580 layer_tree_host_impl_->mutator_host()->UnregisterElement(
581 layer->element_id(), 581 layer->element_id(),
582 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); 582 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING);
583 583
584 element_layers_map_.erase(layer->element_id()); 584 element_layers_map_.erase(layer->element_id());
585 } 585 }
586 586
587 void LayerTreeImpl::AddToOpacityAnimationsMap(int id, float opacity) {
588 if (LayerImpl* layer = LayerById(id))
589 element_id_to_opacity_animations_[layer->element_id()] = opacity;
590 }
591
592 void LayerTreeImpl::SetTransformMutated(ElementId element_id, 587 void LayerTreeImpl::SetTransformMutated(ElementId element_id,
593 const gfx::Transform& transform) { 588 const gfx::Transform& transform) {
594 DCHECK_EQ(1u, property_trees()->element_id_to_transform_node_index.count( 589 DCHECK_EQ(1u, property_trees()->element_id_to_transform_node_index.count(
595 element_id)); 590 element_id));
596 element_id_to_transform_animations_[element_id] = transform; 591 element_id_to_transform_animations_[element_id] = transform;
597 if (!property_trees()->transform_tree.OnTransformAnimated(element_id, 592 if (!property_trees()->transform_tree.OnTransformAnimated(element_id,
598 transform)) 593 transform))
599 return; 594 return;
600 595
601 if (LayerImpl* layer = LayerByElementId(element_id)) 596 if (LayerImpl* layer = LayerByElementId(element_id))
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after
1408 1403
1409 gfx::Rect LayerTreeImpl::DeviceViewport() const { 1404 gfx::Rect LayerTreeImpl::DeviceViewport() const {
1410 return layer_tree_host_impl_->DeviceViewport(); 1405 return layer_tree_host_impl_->DeviceViewport();
1411 } 1406 }
1412 1407
1413 const gfx::Rect LayerTreeImpl::ViewportRectForTilePriority() const { 1408 const gfx::Rect LayerTreeImpl::ViewportRectForTilePriority() const {
1414 return layer_tree_host_impl_->ViewportRectForTilePriority(); 1409 return layer_tree_host_impl_->ViewportRectForTilePriority();
1415 } 1410 }
1416 1411
1417 std::unique_ptr<ScrollbarAnimationController> 1412 std::unique_ptr<ScrollbarAnimationController>
1418 LayerTreeImpl::CreateScrollbarAnimationController(ElementId scroll_element_id) { 1413 LayerTreeImpl::CreateScrollbarAnimationController(ElementId scroll_element_id,
1414 float initial_opacity) {
1419 DCHECK(!settings().scrollbar_fade_delay.is_zero()); 1415 DCHECK(!settings().scrollbar_fade_delay.is_zero());
1420 DCHECK(!settings().scrollbar_fade_duration.is_zero()); 1416 DCHECK(!settings().scrollbar_fade_duration.is_zero());
1421 base::TimeDelta fade_delay = settings().scrollbar_fade_delay; 1417 base::TimeDelta fade_delay = settings().scrollbar_fade_delay;
1422 base::TimeDelta fade_duration = settings().scrollbar_fade_duration; 1418 base::TimeDelta fade_duration = settings().scrollbar_fade_duration;
1423 switch (settings().scrollbar_animator) { 1419 switch (settings().scrollbar_animator) {
1424 case LayerTreeSettings::ANDROID_OVERLAY: { 1420 case LayerTreeSettings::ANDROID_OVERLAY: {
1425 return ScrollbarAnimationController:: 1421 return ScrollbarAnimationController::
1426 CreateScrollbarAnimationControllerAndroid(scroll_element_id, 1422 CreateScrollbarAnimationControllerAndroid(
1427 layer_tree_host_impl_, 1423 scroll_element_id, layer_tree_host_impl_, fade_delay,
1428 fade_delay, fade_duration); 1424 fade_duration, initial_opacity);
1429 } 1425 }
1430 case LayerTreeSettings::AURA_OVERLAY: { 1426 case LayerTreeSettings::AURA_OVERLAY: {
1431 base::TimeDelta thinning_duration = 1427 base::TimeDelta thinning_duration =
1432 settings().scrollbar_thinning_duration; 1428 settings().scrollbar_thinning_duration;
1433 return ScrollbarAnimationController:: 1429 return ScrollbarAnimationController::
1434 CreateScrollbarAnimationControllerAuraOverlay( 1430 CreateScrollbarAnimationControllerAuraOverlay(
1435 scroll_element_id, layer_tree_host_impl_, fade_delay, 1431 scroll_element_id, layer_tree_host_impl_, fade_delay,
1436 fade_duration, thinning_duration); 1432 fade_duration, thinning_duration, initial_opacity);
1437 } 1433 }
1438 case LayerTreeSettings::NO_ANIMATOR: 1434 case LayerTreeSettings::NO_ANIMATOR:
1439 NOTREACHED(); 1435 NOTREACHED();
1440 break; 1436 break;
1441 } 1437 }
1442 return nullptr; 1438 return nullptr;
1443 } 1439 }
1444 1440
1445 void LayerTreeImpl::DidAnimateScrollOffset() { 1441 void LayerTreeImpl::DidAnimateScrollOffset() {
1446 layer_tree_host_impl_->DidAnimateScrollOffset(); 1442 layer_tree_host_impl_->DidAnimateScrollOffset();
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
1664 1660
1665 void LayerTreeImpl::RegisterScrollbar(ScrollbarLayerImplBase* scrollbar_layer) { 1661 void LayerTreeImpl::RegisterScrollbar(ScrollbarLayerImplBase* scrollbar_layer) {
1666 ElementId scroll_element_id = scrollbar_layer->scroll_element_id(); 1662 ElementId scroll_element_id = scrollbar_layer->scroll_element_id();
1667 if (!scroll_element_id) 1663 if (!scroll_element_id)
1668 return; 1664 return;
1669 1665
1670 element_id_to_scrollbar_layer_ids_.insert( 1666 element_id_to_scrollbar_layer_ids_.insert(
1671 std::pair<ElementId, int>(scroll_element_id, scrollbar_layer->id())); 1667 std::pair<ElementId, int>(scroll_element_id, scrollbar_layer->id()));
1672 if (IsActiveTree() && scrollbar_layer->is_overlay_scrollbar()) { 1668 if (IsActiveTree() && scrollbar_layer->is_overlay_scrollbar()) {
1673 layer_tree_host_impl_->RegisterScrollbarAnimationController( 1669 layer_tree_host_impl_->RegisterScrollbarAnimationController(
1674 scroll_element_id); 1670 scroll_element_id, scrollbar_layer->Opacity());
1675 } 1671 }
1676 1672
1677 // TODO(pdr): Refactor DidUpdateScrollState to use ElementIds instead of 1673 // TODO(pdr): Refactor DidUpdateScrollState to use ElementIds instead of
1678 // layer ids and remove this use of LayerIdByElementId. 1674 // layer ids and remove this use of LayerIdByElementId.
1679 DidUpdateScrollState(LayerIdByElementId(scroll_element_id)); 1675 DidUpdateScrollState(LayerIdByElementId(scroll_element_id));
1680 } 1676 }
1681 1677
1682 void LayerTreeImpl::UnregisterScrollbar( 1678 void LayerTreeImpl::UnregisterScrollbar(
1683 ScrollbarLayerImplBase* scrollbar_layer) { 1679 ScrollbarLayerImplBase* scrollbar_layer) {
1684 ElementId scroll_element_id = scrollbar_layer->scroll_element_id(); 1680 ElementId scroll_element_id = scrollbar_layer->scroll_element_id();
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
2109 2105
2110 void LayerTreeImpl::ResetAllChangeTracking() { 2106 void LayerTreeImpl::ResetAllChangeTracking() {
2111 layers_that_should_push_properties_.clear(); 2107 layers_that_should_push_properties_.clear();
2112 // Iterate over all layers, including masks. 2108 // Iterate over all layers, including masks.
2113 for (auto& layer : *layers_) 2109 for (auto& layer : *layers_)
2114 layer->ResetChangeTracking(); 2110 layer->ResetChangeTracking();
2115 property_trees_.ResetAllChangeTracking(); 2111 property_trees_.ResetAllChangeTracking();
2116 } 2112 }
2117 2113
2118 } // namespace cc 2114 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | cc/trees/property_tree.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698