diff options
-rw-r--r-- | DEPS | 2 | ||||
-rw-r--r-- | cc/layers/layer_iterator.cc | 95 | ||||
-rw-r--r-- | cc/layers/layer_iterator.h | 35 | ||||
-rw-r--r-- | cc/layers/layer_iterator_unittest.cc | 51 | ||||
-rw-r--r-- | cc/trees/layer_tree_host.cc | 3 | ||||
-rw-r--r-- | cc/trees/layer_tree_impl.cc | 2 |
6 files changed, 5 insertions, 183 deletions
@@ -70,7 +70,7 @@ deps = { "/external/angle.git@e5014a97e29c0d88d47c693ed168c00f61551e53", "src/third_party/trace-viewer": - (Var("googlecode_url") % "trace-viewer") + "/trunk@1023", + (Var("googlecode_url") % "trace-viewer") + "/trunk@1028", "src/third_party/WebKit": Var("webkit_trunk") + "@" + Var("webkit_revision"), diff --git a/cc/layers/layer_iterator.cc b/cc/layers/layer_iterator.cc index c33e753..a52c3f1 100644 --- a/cc/layers/layer_iterator.cc +++ b/cc/layers/layer_iterator.cc @@ -17,81 +17,6 @@ template <typename LayerType, typename LayerList, typename RenderSurfaceType, typename ActionType> -void LayerIteratorActions::BackToFront::Begin( - LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>* it) { - it->target_render_surface_layer_index_ = 0; - it->current_layer_index_ = - LayerIteratorValue::kLayerIndexRepresentingTargetRenderSurface; - - highest_target_render_surface_layer_ = 0; -} - -template <typename LayerType, - typename LayerList, - typename RenderSurfaceType, - typename ActionType> -void LayerIteratorActions::BackToFront::End( - LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>* it) { - it->target_render_surface_layer_index_ = - LayerIteratorValue::kInvalidTargetRenderSurfaceLayerIndex; - it->current_layer_index_ = 0; -} - -template <typename LayerType, - typename LayerList, - typename RenderSurfaceType, - typename ActionType> -void LayerIteratorActions::BackToFront::Next( - LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>* it) { - // If the current layer has a RS, move to its layer list. Otherwise, - // visit the next layer in the current RS layer list. - if (it->current_layer_represents_contributing_render_surface()) { - // Save our position in the child_layers list for the RenderSurface, - // then jump to the next RenderSurface. Save where we - // came from in the next RenderSurface so we can get back to it. - it->target_render_surface()->current_layer_index_history_ = - it->current_layer_index_; - int previous_target_render_surface_layer = - it->target_render_surface_layer_index_; - - it->target_render_surface_layer_index_ = - ++highest_target_render_surface_layer_; - it->current_layer_index_ = - LayerIteratorValue::kLayerIndexRepresentingTargetRenderSurface; - - it->target_render_surface()->target_render_surface_layer_index_history_ = - previous_target_render_surface_layer; - } else { - ++it->current_layer_index_; - - int target_render_surface_num_children = - it->target_render_surface_children().size(); - while (it->current_layer_index_ == target_render_surface_num_children) { - // Jump back to the previous RenderSurface, - // and get back the position where we were in that list, - // and move to the next position there. - if (!it->target_render_surface_layer_index_) { - // End of the list - it->target_render_surface_layer_index_ = - LayerIteratorValue::kInvalidTargetRenderSurfaceLayerIndex; - it->current_layer_index_ = 0; - return; - } - it->target_render_surface_layer_index_ = it->target_render_surface() - ->target_render_surface_layer_index_history_; - it->current_layer_index_ = - it->target_render_surface()->current_layer_index_history_ + 1; - - target_render_surface_num_children = - it->target_render_surface_children().size(); - } - } -} - -template <typename LayerType, - typename LayerList, - typename RenderSurfaceType, - typename ActionType> void LayerIteratorActions::FrontToBack::Begin( LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>* it) { it->target_render_surface_layer_index_ = 0; @@ -176,26 +101,6 @@ void LayerIteratorActions::FrontToBack::GoToHighestInSubtree( // Declare each of the above functions for Layer and LayerImpl classes // so that they are linked. -template CC_EXPORT void LayerIteratorActions::BackToFront::Begin( - LayerIterator<Layer, RenderSurfaceLayerList, RenderSurface, BackToFront>* - it); -template CC_EXPORT void LayerIteratorActions::BackToFront::End( - LayerIterator<Layer, RenderSurfaceLayerList, RenderSurface, BackToFront>* - it); -template CC_EXPORT void LayerIteratorActions::BackToFront::Next( - LayerIterator<Layer, RenderSurfaceLayerList, RenderSurface, BackToFront>* - it); - -template CC_EXPORT void LayerIteratorActions::BackToFront::Begin( - LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, BackToFront>* - it); -template CC_EXPORT void LayerIteratorActions::BackToFront::End( - LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, BackToFront>* - it); -template CC_EXPORT void LayerIteratorActions::BackToFront::Next( - LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, BackToFront>* - it); - template CC_EXPORT void LayerIteratorActions::FrontToBack::Next( LayerIterator<Layer, RenderSurfaceLayerList, RenderSurface, FrontToBack>* it); diff --git a/cc/layers/layer_iterator.h b/cc/layers/layer_iterator.h index b8a02c3..5b13273 100644 --- a/cc/layers/layer_iterator.h +++ b/cc/layers/layer_iterator.h @@ -69,11 +69,8 @@ namespace cc { // refers to the layer itself, as a child of the // current target RenderSurface. // -// The BackToFront iterator will return a layer representing the target surface -// before returning layers representing themselves as children of the current -// target surface. Whereas the FrontToBack ordering will iterate over children -// layers of a surface before the layer representing the surface -// as a target surface. +// The FrontToBack iterator will iterate over children layers of a surface +// before the layer representing the surface as a target surface. // // To use the iterators: // @@ -237,34 +234,6 @@ class LayerIterator { // Orderings for iterating over the RenderSurface-Layer tree. struct CC_EXPORT LayerIteratorActions { - // Walks layers sorted by z-order from back to front. - class CC_EXPORT BackToFront { - public: - template <typename LayerType, - typename LayerList, - typename RenderSurfaceType, - typename ActionType> - void Begin( - LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>* it); - - template <typename LayerType, - typename LayerList, - typename RenderSurfaceType, - typename ActionType> - void End( - LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>* it); - - template <typename LayerType, - typename LayerList, - typename RenderSurfaceType, - typename ActionType> - void Next( - LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>* it); - - private: - int highest_target_render_surface_layer_; - }; - // Walks layers sorted by z-order from front to back class CC_EXPORT FrontToBack { public: diff --git a/cc/layers/layer_iterator_unittest.cc b/cc/layers/layer_iterator_unittest.cc index c2ab71b..c781d28 100644 --- a/cc/layers/layer_iterator_unittest.cc +++ b/cc/layers/layer_iterator_unittest.cc @@ -54,10 +54,6 @@ typedef LayerIterator<Layer, RenderSurfaceLayerList, RenderSurface, LayerIteratorActions::FrontToBack> FrontToBack; -typedef LayerIterator<Layer, - RenderSurfaceLayerList, - RenderSurface, - LayerIteratorActions::BackToFront> BackToFront; void ResetCounts(RenderSurfaceLayerList* render_surface_layer_list) { for (unsigned surface_index = 0; @@ -101,27 +97,9 @@ void IterateFrontToBack( } } -void IterateBackToFront( - RenderSurfaceLayerList* render_surface_layer_list) { - ResetCounts(render_surface_layer_list); - int count = 0; - for (BackToFront it = BackToFront::Begin(render_surface_layer_list); - it != BackToFront::End(render_surface_layer_list); - ++it, ++count) { - TestLayer* layer = static_cast<TestLayer*>(*it); - if (it.represents_target_render_surface()) - layer->count_representing_target_surface_ = count; - if (it.represents_contributing_render_surface()) - layer->count_representing_contributing_surface_ = count; - if (it.represents_itself()) - layer->count_representing_itself_ = count; - } -} - TEST(LayerIteratorTest, EmptyTree) { RenderSurfaceLayerList render_surface_layer_list; - IterateBackToFront(&render_surface_layer_list); IterateFrontToBack(&render_surface_layer_list); } @@ -145,13 +123,6 @@ TEST(LayerIteratorTest, SimpleTree) { root_layer.get(), root_layer->bounds(), &render_surface_layer_list); LayerTreeHostCommon::CalculateDrawProperties(&inputs); - IterateBackToFront(&render_surface_layer_list); - EXPECT_COUNT(root_layer, 0, -1, 1); - EXPECT_COUNT(first, -1, -1, 2); - EXPECT_COUNT(second, -1, -1, 3); - EXPECT_COUNT(third, -1, -1, 4); - EXPECT_COUNT(fourth, -1, -1, 5); - IterateFrontToBack(&render_surface_layer_list); EXPECT_COUNT(root_layer, 5, -1, 4); EXPECT_COUNT(first, -1, -1, 3); @@ -188,17 +159,6 @@ TEST(LayerIteratorTest, ComplexTree) { root_layer.get(), root_layer->bounds(), &render_surface_layer_list); LayerTreeHostCommon::CalculateDrawProperties(&inputs); - IterateBackToFront(&render_surface_layer_list); - EXPECT_COUNT(root_layer, 0, -1, 1); - EXPECT_COUNT(root1, -1, -1, 2); - EXPECT_COUNT(root2, -1, -1, 3); - EXPECT_COUNT(root21, -1, -1, 4); - EXPECT_COUNT(root22, -1, -1, 5); - EXPECT_COUNT(root221, -1, -1, 6); - EXPECT_COUNT(root23, -1, -1, 7); - EXPECT_COUNT(root231, -1, -1, 8); - EXPECT_COUNT(root3, -1, -1, 9); - IterateFrontToBack(&render_surface_layer_list); EXPECT_COUNT(root_layer, 9, -1, 8); EXPECT_COUNT(root1, -1, -1, 7); @@ -244,17 +204,6 @@ TEST(LayerIteratorTest, ComplexTreeMultiSurface) { root_layer.get(), root_layer->bounds(), &render_surface_layer_list); LayerTreeHostCommon::CalculateDrawProperties(&inputs); - IterateBackToFront(&render_surface_layer_list); - EXPECT_COUNT(root_layer, 0, -1, 1); - EXPECT_COUNT(root1, -1, -1, 2); - EXPECT_COUNT(root2, 4, 3, -1); - EXPECT_COUNT(root21, -1, -1, 5); - EXPECT_COUNT(root22, 7, 6, 8); - EXPECT_COUNT(root221, -1, -1, 9); - EXPECT_COUNT(root23, 11, 10, 12); - EXPECT_COUNT(root231, -1, -1, 13); - EXPECT_COUNT(root3, -1, -1, 14); - IterateFrontToBack(&render_surface_layer_list); EXPECT_COUNT(root_layer, 14, -1, 13); EXPECT_COUNT(root1, -1, -1, 12); diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc index baa0afb..8bbf742 100644 --- a/cc/trees/layer_tree_host.cc +++ b/cc/trees/layer_tree_host.cc @@ -893,11 +893,10 @@ void LayerTreeHost::SetPrioritiesForSurfaces(size_t surface_memory_bytes) { void LayerTreeHost::SetPrioritiesForLayers( const RenderSurfaceLayerList& update_list) { - // Use BackToFront since it's cheap and this isn't order-dependent. typedef LayerIterator<Layer, RenderSurfaceLayerList, RenderSurface, - LayerIteratorActions::BackToFront> LayerIteratorType; + LayerIteratorActions::FrontToBack> LayerIteratorType; PriorityCalculator calculator; LayerIteratorType end = LayerIteratorType::End(&update_list); diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc index aa587b4..8c87b75 100644 --- a/cc/trees/layer_tree_impl.cc +++ b/cc/trees/layer_tree_impl.cc @@ -597,7 +597,7 @@ scoped_ptr<base::Value> LayerTreeImpl::AsValue() const { typedef LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, - LayerIteratorActions::BackToFront> LayerIteratorType; + LayerIteratorActions::FrontToBack> LayerIteratorType; LayerIteratorType end = LayerIteratorType::End(&render_surface_layer_list_); for (LayerIteratorType it = LayerIteratorType::Begin( &render_surface_layer_list_); it != end; ++it) { |