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

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

Issue 1757073002: Use LayerListIterator when hit testing. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rename some stuff to avoid using the word 'recursion' Created 4 years, 9 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 | « no previous file | no next file » | 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 12 matching lines...) Expand all
23 #include "cc/base/synced_property.h" 23 #include "cc/base/synced_property.h"
24 #include "cc/debug/devtools_instrumentation.h" 24 #include "cc/debug/devtools_instrumentation.h"
25 #include "cc/debug/traced_value.h" 25 #include "cc/debug/traced_value.h"
26 #include "cc/input/page_scale_animation.h" 26 #include "cc/input/page_scale_animation.h"
27 #include "cc/input/scrollbar_animation_controller.h" 27 #include "cc/input/scrollbar_animation_controller.h"
28 #include "cc/input/scrollbar_animation_controller_linear_fade.h" 28 #include "cc/input/scrollbar_animation_controller_linear_fade.h"
29 #include "cc/input/scrollbar_animation_controller_thinning.h" 29 #include "cc/input/scrollbar_animation_controller_thinning.h"
30 #include "cc/layers/heads_up_display_layer_impl.h" 30 #include "cc/layers/heads_up_display_layer_impl.h"
31 #include "cc/layers/layer.h" 31 #include "cc/layers/layer.h"
32 #include "cc/layers/layer_iterator.h" 32 #include "cc/layers/layer_iterator.h"
33 #include "cc/layers/layer_list_iterator.h"
33 #include "cc/layers/render_surface_impl.h" 34 #include "cc/layers/render_surface_impl.h"
34 #include "cc/layers/scrollbar_layer_impl_base.h" 35 #include "cc/layers/scrollbar_layer_impl_base.h"
35 #include "cc/resources/ui_resource_request.h" 36 #include "cc/resources/ui_resource_request.h"
36 #include "cc/trees/draw_property_utils.h" 37 #include "cc/trees/draw_property_utils.h"
37 #include "cc/trees/layer_tree_host_common.h" 38 #include "cc/trees/layer_tree_host_common.h"
38 #include "cc/trees/layer_tree_host_impl.h" 39 #include "cc/trees/layer_tree_host_impl.h"
39 #include "cc/trees/occlusion_tracker.h" 40 #include "cc/trees/occlusion_tracker.h"
40 #include "cc/trees/property_tree.h" 41 #include "cc/trees/property_tree.h"
41 #include "cc/trees/property_tree_builder.h" 42 #include "cc/trees/property_tree_builder.h"
42 #include "ui/gfx/geometry/box_f.h" 43 #include "ui/gfx/geometry/box_f.h"
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 EventListenerClass::kMouseWheel, 362 EventListenerClass::kMouseWheel,
362 event_listener_properties(EventListenerClass::kMouseWheel)); 363 event_listener_properties(EventListenerClass::kMouseWheel));
363 364
364 if (ViewportSizeInvalid()) 365 if (ViewportSizeInvalid())
365 target_tree->SetViewportSizeInvalid(); 366 target_tree->SetViewportSizeInvalid();
366 else 367 else
367 target_tree->ResetViewportSizeInvalid(); 368 target_tree->ResetViewportSizeInvalid();
368 369
369 if (hud_layer()) 370 if (hud_layer())
370 target_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>( 371 target_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(
371 LayerTreeHostCommon::FindLayerInSubtree( 372 LayerTreeHostCommon::FindLayerInSubtree(target_tree->root_layer(),
372 target_tree->root_layer(), hud_layer()->id()))); 373 hud_layer()->id())));
373 else 374 else
374 target_tree->set_hud_layer(NULL); 375 target_tree->set_hud_layer(NULL);
375 376
376 target_tree->has_ever_been_drawn_ = false; 377 target_tree->has_ever_been_drawn_ = false;
377 } 378 }
378 void LayerTreeImpl::AddToElementMap(LayerImpl* layer) { 379 void LayerTreeImpl::AddToElementMap(LayerImpl* layer) {
379 if (!layer->element_id() || !layer->mutable_properties()) 380 if (!layer->element_id() || !layer->mutable_properties())
380 return; 381 return;
381 382
382 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), 383 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"),
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 tile_priorities_updated |= layer->UpdateTiles(); 879 tile_priorities_updated |= layer->UpdateTiles();
879 } 880 }
880 881
881 if (tile_priorities_updated) 882 if (tile_priorities_updated)
882 DidModifyTilePriorities(); 883 DidModifyTilePriorities();
883 884
884 TRACE_EVENT_END1("cc", "LayerTreeImpl::UpdateDrawProperties::UpdateTiles", 885 TRACE_EVENT_END1("cc", "LayerTreeImpl::UpdateDrawProperties::UpdateTiles",
885 "layers_updated_count", layers_updated_count); 886 "layers_updated_count", layers_updated_count);
886 } 887 }
887 888
888 DCHECK(!needs_update_draw_properties_) << 889 DCHECK(!needs_update_draw_properties_)
889 "CalcDrawProperties should not set_needs_update_draw_properties()"; 890 << "CalcDrawProperties should not set_needs_update_draw_properties()";
890 return true; 891 return true;
891 } 892 }
892 893
893 void LayerTreeImpl::BuildPropertyTreesForTesting() { 894 void LayerTreeImpl::BuildPropertyTreesForTesting() {
894 LayerTreeHostCommon::PreCalculateMetaInformationForTesting(root_layer_.get()); 895 LayerTreeHostCommon::PreCalculateMetaInformationForTesting(root_layer_.get());
895 PropertyTreeBuilder::BuildPropertyTrees( 896 PropertyTreeBuilder::BuildPropertyTrees(
896 root_layer_.get(), PageScaleLayer(), InnerViewportScrollLayer(), 897 root_layer_.get(), PageScaleLayer(), InnerViewportScrollLayer(),
897 OuterViewportScrollLayer(), OverscrollElasticityLayer(), 898 OuterViewportScrollLayer(), OverscrollElasticityLayer(),
898 elastic_overscroll()->Current(IsActiveTree()), 899 elastic_overscroll()->Current(IsActiveTree()),
899 current_page_scale_factor(), device_scale_factor(), 900 current_page_scale_factor(), device_scale_factor(),
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
1387 << i << " of " << layers_with_copy_output_request_.size(); 1388 << i << " of " << layers_with_copy_output_request_.size();
1388 } 1389 }
1389 layers_with_copy_output_request_.push_back(layer); 1390 layers_with_copy_output_request_.push_back(layer);
1390 } 1391 }
1391 1392
1392 void LayerTreeImpl::RemoveLayerWithCopyOutputRequest(LayerImpl* layer) { 1393 void LayerTreeImpl::RemoveLayerWithCopyOutputRequest(LayerImpl* layer) {
1393 // Only the active tree needs to know about layers with copy requests, as 1394 // Only the active tree needs to know about layers with copy requests, as
1394 // they are aborted if not serviced during draw. 1395 // they are aborted if not serviced during draw.
1395 DCHECK(IsActiveTree()); 1396 DCHECK(IsActiveTree());
1396 1397
1397 std::vector<LayerImpl*>::iterator it = std::find( 1398 std::vector<LayerImpl*>::iterator it =
1398 layers_with_copy_output_request_.begin(), 1399 std::find(layers_with_copy_output_request_.begin(),
1399 layers_with_copy_output_request_.end(), 1400 layers_with_copy_output_request_.end(), layer);
1400 layer);
1401 DCHECK(it != layers_with_copy_output_request_.end()); 1401 DCHECK(it != layers_with_copy_output_request_.end());
1402 layers_with_copy_output_request_.erase(it); 1402 layers_with_copy_output_request_.erase(it);
1403 1403
1404 // TODO(danakj): Remove this once crash is found crbug.com/309777 1404 // TODO(danakj): Remove this once crash is found crbug.com/309777
1405 for (size_t i = 0; i < layers_with_copy_output_request_.size(); ++i) { 1405 for (size_t i = 0; i < layers_with_copy_output_request_.size(); ++i) {
1406 CHECK(layers_with_copy_output_request_[i] != layer) 1406 CHECK(layers_with_copy_output_request_[i] != layer)
1407 << i << " of " << layers_with_copy_output_request_.size(); 1407 << i << " of " << layers_with_copy_output_request_.size();
1408 } 1408 }
1409 } 1409 }
1410 1410
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
1585 transform_tree, clip_tree)) 1585 transform_tree, clip_tree))
1586 return false; 1586 return false;
1587 1587
1588 // Skip the HUD layer. 1588 // Skip the HUD layer.
1589 if (layer == layer->layer_tree_impl()->hud_layer()) 1589 if (layer == layer->layer_tree_impl()->hud_layer())
1590 return false; 1590 return false;
1591 1591
1592 return true; 1592 return true;
1593 } 1593 }
1594 1594
1595 struct FindClosestMatchingLayerDataForRecursion { 1595 struct FindClosestMatchingLayerState {
1596 FindClosestMatchingLayerDataForRecursion() 1596 FindClosestMatchingLayerState()
1597 : closest_match(NULL), 1597 : closest_match(NULL),
1598 closest_distance(-std::numeric_limits<float>::infinity()) {} 1598 closest_distance(-std::numeric_limits<float>::infinity()) {}
1599 LayerImpl* closest_match; 1599 LayerImpl* closest_match;
1600 // Note that the positive z-axis points towards the camera, so bigger means 1600 // Note that the positive z-axis points towards the camera, so bigger means
1601 // closer in this case, counterintuitively. 1601 // closer in this case, counterintuitively.
1602 float closest_distance; 1602 float closest_distance;
1603 }; 1603 };
1604 1604
1605 template <typename Functor> 1605 template <typename Functor>
1606 static void FindClosestMatchingLayer( 1606 static void FindClosestMatchingLayer(const gfx::PointF& screen_space_point,
1607 const gfx::PointF& screen_space_point, 1607 LayerImpl* root_layer,
1608 LayerImpl* layer, 1608 const Functor& func,
1609 const Functor& func, 1609 const TransformTree& transform_tree,
1610 const TransformTree& transform_tree, 1610 const ClipTree& clip_tree,
1611 const ClipTree& clip_tree, 1611 FindClosestMatchingLayerState* state) {
1612 FindClosestMatchingLayerDataForRecursion* data_for_recursion) { 1612 // We want to iterate from front to back when hit testing.
1613 size_t children_size = layer->children().size(); 1613 LayerListReverseIterator it(root_layer);
1614 for (size_t i = 0; i < children_size; ++i) { 1614 LayerListReverseIterator end(nullptr);
1615 size_t index = children_size - 1 - i; 1615 for (; it != end; ++it) {
ajuma 2016/03/02 22:36:47 Do we need the explicit 'end' here, or could we ju
danakj 2016/03/02 22:41:49 jw, is it possible that rbegin()/rend() on LayerIm
danakj 2016/03/02 22:46:32 I would prefer that personally, it would make it l
1616 FindClosestMatchingLayer(screen_space_point, layer->children()[index].get(), 1616 LayerImpl* layer = *it;
1617 func, transform_tree, clip_tree, 1617 if (!func(layer))
1618 data_for_recursion); 1618 continue;
1619 }
1620 1619
1621 if (!func(layer)) 1620 float distance_to_intersection = 0.f;
1622 return; 1621 bool hit = false;
1622 if (layer->Is3dSorted())
1623 hit = PointHitsLayer(layer, screen_space_point, &distance_to_intersection,
1624 transform_tree, clip_tree);
1625 else
1626 hit = PointHitsLayer(layer, screen_space_point, nullptr, transform_tree,
1627 clip_tree);
1623 1628
1624 float distance_to_intersection = 0.f; 1629 if (!hit)
1625 bool hit = false; 1630 continue;
1626 if (layer->Is3dSorted())
1627 hit = PointHitsLayer(layer, screen_space_point, &distance_to_intersection,
1628 transform_tree, clip_tree);
1629 else
1630 hit = PointHitsLayer(layer, screen_space_point, nullptr, transform_tree,
1631 clip_tree);
1632 1631
1633 if (!hit) 1632 bool in_front_of_previous_candidate =
1634 return; 1633 state->closest_match &&
1634 layer->sorting_context_id() ==
1635 state->closest_match->sorting_context_id() &&
1636 distance_to_intersection >
1637 state->closest_distance + std::numeric_limits<float>::epsilon();
1635 1638
1636 bool in_front_of_previous_candidate = 1639 if (!state->closest_match || in_front_of_previous_candidate) {
1637 data_for_recursion->closest_match && 1640 state->closest_distance = distance_to_intersection;
1638 layer->sorting_context_id() == 1641 state->closest_match = layer;
1639 data_for_recursion->closest_match->sorting_context_id() && 1642 }
1640 distance_to_intersection > data_for_recursion->closest_distance +
1641 std::numeric_limits<float>::epsilon();
1642
1643 if (!data_for_recursion->closest_match || in_front_of_previous_candidate) {
1644 data_for_recursion->closest_distance = distance_to_intersection;
1645 data_for_recursion->closest_match = layer;
1646 } 1643 }
1647 } 1644 }
1648 1645
1649 static bool ScrollsAnyDrawnRenderSurfaceLayerListMember(LayerImpl* layer) { 1646 static bool ScrollsAnyDrawnRenderSurfaceLayerListMember(LayerImpl* layer) {
1650 if (!layer->scrollable()) 1647 if (!layer->scrollable())
1651 return false; 1648 return false;
1652 if (layer->layer_or_descendant_is_drawn()) 1649 if (layer->layer_or_descendant_is_drawn())
1653 return true; 1650 return true;
1654 1651
1655 if (!layer->scroll_children()) 1652 if (!layer->scroll_children())
1656 return false; 1653 return false;
1657 for (std::set<LayerImpl*>::const_iterator it = 1654 for (std::set<LayerImpl*>::const_iterator it =
1658 layer->scroll_children()->begin(); 1655 layer->scroll_children()->begin();
1659 it != layer->scroll_children()->end(); 1656 it != layer->scroll_children()->end(); ++it) {
1660 ++it) {
1661 if ((*it)->layer_or_descendant_is_drawn()) 1657 if ((*it)->layer_or_descendant_is_drawn())
1662 return true; 1658 return true;
1663 } 1659 }
1664 return false; 1660 return false;
1665 } 1661 }
1666 1662
1667 struct FindScrollingLayerFunctor { 1663 struct FindScrollingLayerFunctor {
1668 bool operator()(LayerImpl* layer) const { 1664 bool operator()(LayerImpl* layer) const {
1669 return ScrollsAnyDrawnRenderSurfaceLayerListMember(layer); 1665 return ScrollsAnyDrawnRenderSurfaceLayerListMember(layer);
1670 } 1666 }
1671 }; 1667 };
1672 1668
1673 LayerImpl* LayerTreeImpl::FindFirstScrollingLayerThatIsHitByPoint( 1669 LayerImpl* LayerTreeImpl::FindFirstScrollingLayerThatIsHitByPoint(
1674 const gfx::PointF& screen_space_point) { 1670 const gfx::PointF& screen_space_point) {
1675 FindClosestMatchingLayerDataForRecursion data_for_recursion; 1671 FindClosestMatchingLayerState state;
1676 FindClosestMatchingLayer(screen_space_point, root_layer(), 1672 FindClosestMatchingLayer(
1677 FindScrollingLayerFunctor(), 1673 screen_space_point, root_layer(), FindScrollingLayerFunctor(),
1678 property_trees_.transform_tree, 1674 property_trees_.transform_tree, property_trees_.clip_tree, &state);
1679 property_trees_.clip_tree, &data_for_recursion); 1675 return state.closest_match;
1680 return data_for_recursion.closest_match;
1681 } 1676 }
1682 1677
1683 struct HitTestVisibleScrollableOrTouchableFunctor { 1678 struct HitTestVisibleScrollableOrTouchableFunctor {
1684 bool operator()(LayerImpl* layer) const { 1679 bool operator()(LayerImpl* layer) const {
1685 return layer->IsDrawnRenderSurfaceLayerListMember() || 1680 return layer->IsDrawnRenderSurfaceLayerListMember() ||
1686 ScrollsAnyDrawnRenderSurfaceLayerListMember(layer) || 1681 ScrollsAnyDrawnRenderSurfaceLayerListMember(layer) ||
1687 !layer->touch_event_handler_region().IsEmpty() || 1682 !layer->touch_event_handler_region().IsEmpty() ||
1688 layer->layer_tree_impl()->event_listener_properties( 1683 layer->layer_tree_impl()->event_listener_properties(
1689 EventListenerClass::kMouseWheel) != 1684 EventListenerClass::kMouseWheel) !=
1690 EventListenerProperties::kNone; 1685 EventListenerProperties::kNone;
1691 } 1686 }
1692 }; 1687 };
1693 1688
1694 LayerImpl* LayerTreeImpl::FindLayerThatIsHitByPoint( 1689 LayerImpl* LayerTreeImpl::FindLayerThatIsHitByPoint(
1695 const gfx::PointF& screen_space_point) { 1690 const gfx::PointF& screen_space_point) {
1696 if (!root_layer()) 1691 if (!root_layer())
1697 return NULL; 1692 return NULL;
1698 bool update_lcd_text = false; 1693 bool update_lcd_text = false;
1699 if (!UpdateDrawProperties(update_lcd_text)) 1694 if (!UpdateDrawProperties(update_lcd_text))
1700 return NULL; 1695 return NULL;
1701 FindClosestMatchingLayerDataForRecursion data_for_recursion; 1696 FindClosestMatchingLayerState state;
1702 FindClosestMatchingLayer(screen_space_point, root_layer(), 1697 FindClosestMatchingLayer(screen_space_point, root_layer(),
1703 HitTestVisibleScrollableOrTouchableFunctor(), 1698 HitTestVisibleScrollableOrTouchableFunctor(),
1704 property_trees_.transform_tree, 1699 property_trees_.transform_tree,
1705 property_trees_.clip_tree, &data_for_recursion); 1700 property_trees_.clip_tree, &state);
1706 return data_for_recursion.closest_match; 1701 return state.closest_match;
1707 } 1702 }
1708 1703
1709 static bool LayerHasTouchEventHandlersAt(const gfx::PointF& screen_space_point, 1704 static bool LayerHasTouchEventHandlersAt(const gfx::PointF& screen_space_point,
1710 LayerImpl* layer_impl, 1705 LayerImpl* layer_impl,
1711 const TransformTree& transform_tree, 1706 const TransformTree& transform_tree,
1712 const ClipTree& clip_tree) { 1707 const ClipTree& clip_tree) {
1713 if (layer_impl->touch_event_handler_region().IsEmpty()) 1708 if (layer_impl->touch_event_handler_region().IsEmpty())
1714 return false; 1709 return false;
1715 1710
1716 if (!PointHitsRegion(screen_space_point, layer_impl->ScreenSpaceTransform(), 1711 if (!PointHitsRegion(screen_space_point, layer_impl->ScreenSpaceTransform(),
(...skipping 24 matching lines...) Expand all
1741 LayerImpl* LayerTreeImpl::FindLayerThatIsHitByPointInTouchHandlerRegion( 1736 LayerImpl* LayerTreeImpl::FindLayerThatIsHitByPointInTouchHandlerRegion(
1742 const gfx::PointF& screen_space_point) { 1737 const gfx::PointF& screen_space_point) {
1743 if (!root_layer()) 1738 if (!root_layer())
1744 return NULL; 1739 return NULL;
1745 bool update_lcd_text = false; 1740 bool update_lcd_text = false;
1746 if (!UpdateDrawProperties(update_lcd_text)) 1741 if (!UpdateDrawProperties(update_lcd_text))
1747 return NULL; 1742 return NULL;
1748 FindTouchEventLayerFunctor func = {screen_space_point, 1743 FindTouchEventLayerFunctor func = {screen_space_point,
1749 property_trees_.transform_tree, 1744 property_trees_.transform_tree,
1750 property_trees_.clip_tree}; 1745 property_trees_.clip_tree};
1751 FindClosestMatchingLayerDataForRecursion data_for_recursion; 1746 FindClosestMatchingLayerState state;
1752 FindClosestMatchingLayer(screen_space_point, root_layer(), func, 1747 FindClosestMatchingLayer(screen_space_point, root_layer(), func,
1753 property_trees_.transform_tree, 1748 property_trees_.transform_tree,
1754 property_trees_.clip_tree, &data_for_recursion); 1749 property_trees_.clip_tree, &state);
1755 return data_for_recursion.closest_match; 1750 return state.closest_match;
1756 } 1751 }
1757 1752
1758 void LayerTreeImpl::RegisterSelection(const LayerSelection& selection) { 1753 void LayerTreeImpl::RegisterSelection(const LayerSelection& selection) {
1759 selection_ = selection; 1754 selection_ = selection;
1760 } 1755 }
1761 1756
1762 static ViewportSelectionBound ComputeViewportSelectionBound( 1757 static ViewportSelectionBound ComputeViewportSelectionBound(
1763 const LayerSelectionBound& layer_bound, 1758 const LayerSelectionBound& layer_bound,
1764 LayerImpl* layer, 1759 LayerImpl* layer,
1765 float device_scale_factor, 1760 float device_scale_factor,
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1850 const { 1845 const {
1851 return layer_tree_host_impl_; 1846 return layer_tree_host_impl_;
1852 } 1847 }
1853 1848
1854 void LayerTreeImpl::SetPendingPageScaleAnimation( 1849 void LayerTreeImpl::SetPendingPageScaleAnimation(
1855 scoped_ptr<PendingPageScaleAnimation> pending_animation) { 1850 scoped_ptr<PendingPageScaleAnimation> pending_animation) {
1856 pending_page_scale_animation_ = std::move(pending_animation); 1851 pending_page_scale_animation_ = std::move(pending_animation);
1857 } 1852 }
1858 1853
1859 scoped_ptr<PendingPageScaleAnimation> 1854 scoped_ptr<PendingPageScaleAnimation>
1860 LayerTreeImpl::TakePendingPageScaleAnimation() { 1855 LayerTreeImpl::TakePendingPageScaleAnimation() {
1861 return std::move(pending_page_scale_animation_); 1856 return std::move(pending_page_scale_animation_);
1862 } 1857 }
1863 1858
1864 bool LayerTreeImpl::IsAnimatingFilterProperty(const LayerImpl* layer) const { 1859 bool LayerTreeImpl::IsAnimatingFilterProperty(const LayerImpl* layer) const {
1865 LayerTreeType tree_type = 1860 LayerTreeType tree_type =
1866 IsActiveTree() ? LayerTreeType::ACTIVE : LayerTreeType::PENDING; 1861 IsActiveTree() ? LayerTreeType::ACTIVE : LayerTreeType::PENDING;
1867 return layer_tree_host_impl_->animation_host() 1862 return layer_tree_host_impl_->animation_host()
1868 ? layer_tree_host_impl_->animation_host() 1863 ? layer_tree_host_impl_->animation_host()
1869 ->IsAnimatingFilterProperty(layer->id(), tree_type) 1864 ->IsAnimatingFilterProperty(layer->id(), tree_type)
1870 : false; 1865 : false;
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
2036 const gfx::BoxF& box, 2031 const gfx::BoxF& box,
2037 gfx::BoxF* bounds) const { 2032 gfx::BoxF* bounds) const {
2038 *bounds = gfx::BoxF(); 2033 *bounds = gfx::BoxF();
2039 return layer_tree_host_impl_->animation_host() 2034 return layer_tree_host_impl_->animation_host()
2040 ? layer_tree_host_impl_->animation_host() 2035 ? layer_tree_host_impl_->animation_host()
2041 ->TransformAnimationBoundsForBox(layer->id(), box, bounds) 2036 ->TransformAnimationBoundsForBox(layer->id(), box, bounds)
2042 : true; 2037 : true;
2043 } 2038 }
2044 2039
2045 } // namespace cc 2040 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698