OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #ifndef CompositorMutableStateProvider_h | 5 #ifndef CompositorMutableStateProvider_h |
6 #define CompositorMutableStateProvider_h | 6 #define CompositorMutableStateProvider_h |
7 | 7 |
8 #include "platform/PlatformExport.h" | |
9 #include <cstdint> | 8 #include <cstdint> |
10 #include <memory> | 9 #include <memory> |
| 10 #include "platform/PlatformExport.h" |
| 11 #include "platform/graphics/CompositorElementId.h" |
11 | 12 |
12 namespace cc { | 13 namespace cc { |
13 class LayerTreeImpl; | 14 class LayerTreeImpl; |
14 } // namespace cc | 15 } // namespace cc |
15 | 16 |
16 namespace blink { | 17 namespace blink { |
17 | 18 |
18 class CompositorMutableState; | 19 class CompositorMutableState; |
19 struct CompositorMutations; | 20 struct CompositorMutations; |
20 | 21 |
21 // This class is a window onto compositor-owned state. It vends out wrappers | 22 // This class is a window onto compositor-owned state. It vends out wrappers |
22 // around per-element bits of this state. | 23 // around per-element bits of this state. |
23 class PLATFORM_EXPORT CompositorMutableStateProvider { | 24 class PLATFORM_EXPORT CompositorMutableStateProvider { |
24 public: | 25 public: |
25 CompositorMutableStateProvider(cc::LayerTreeImpl*, CompositorMutations*); | 26 CompositorMutableStateProvider(cc::LayerTreeImpl*, CompositorMutations*); |
26 ~CompositorMutableStateProvider(); | 27 ~CompositorMutableStateProvider(); |
27 | 28 |
28 std::unique_ptr<CompositorMutableState> GetMutableStateFor( | 29 // TODO(chrishtr): the callsites for this are wrong - they pass a uint64_t |
29 uint64_t element_id); | 30 // encoding of an Element pointer, which is bad because pointers can be |
| 31 // reused. Instead they should use DOMNodeId. |
| 32 std::unique_ptr<CompositorMutableState> GetMutableStateFor(DOMNodeId); |
30 | 33 |
31 private: | 34 private: |
32 cc::LayerTreeImpl* tree_; | 35 cc::LayerTreeImpl* tree_; |
33 CompositorMutations* mutations_; | 36 CompositorMutations* mutations_; |
34 }; | 37 }; |
35 | 38 |
36 } // namespace blink | 39 } // namespace blink |
37 | 40 |
38 #endif // CompositorMutableStateProvider_h | 41 #endif // CompositorMutableStateProvider_h |
OLD | NEW |