OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef CC_TREES_TREE_SYNCHRONIZER_H_ | |
6 #define CC_TREES_TREE_SYNCHRONIZER_H_ | |
7 | |
8 #include "base/basictypes.h" | |
9 #include "base/memory/scoped_ptr.h" | |
10 #include "cc/base/cc_export.h" | |
11 | |
12 namespace cc { | |
13 | |
14 class LayerImpl; | |
15 class LayerTreeImpl; | |
16 class Layer; | |
17 | |
18 class CC_EXPORT TreeSynchronizer { | |
19 public: | |
20 // Accepts a Layer tree and returns a reference to a LayerImpl tree that | |
21 // duplicates the structure of the Layer tree, reusing the LayerImpls in the | |
22 // tree provided by old_layer_impl_root if possible. | |
23 static scoped_ptr<LayerImpl> SynchronizeTrees( | |
24 Layer* layer_root, | |
25 scoped_ptr<LayerImpl> old_layer_impl_root, | |
26 LayerTreeImpl* tree_impl); | |
27 static scoped_ptr<LayerImpl> SynchronizeTrees( | |
28 LayerImpl* layer_root, | |
29 scoped_ptr<LayerImpl> old_layer_impl_root, | |
30 LayerTreeImpl* tree_impl); | |
31 | |
32 // Pushes properties from a Layer or LayerImpl tree to a structurally | |
33 // equivalent LayerImpl tree. | |
34 static void PushProperties(Layer* layer_root, | |
35 LayerImpl* layer_impl_root); | |
36 static void PushProperties(LayerImpl* layer_root, LayerImpl* layer_impl_root); | |
37 | |
38 private: | |
39 TreeSynchronizer(); // Not instantiable. | |
40 | |
41 template <typename LayerType> | |
42 static void PushPropertiesInternal( | |
43 LayerType* layer, | |
44 LayerImpl* layer_impl, | |
45 size_t* num_dependents_need_push_properties_for_parent); | |
46 | |
47 DISALLOW_COPY_AND_ASSIGN(TreeSynchronizer); | |
48 }; | |
49 | |
50 } // namespace cc | |
51 | |
52 #endif // CC_TREES_TREE_SYNCHRONIZER_H_ | |
OLD | NEW |