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 CompositorElementId_h | 5 #ifndef CompositorElementId_h |
6 #define CompositorElementId_h | 6 #define CompositorElementId_h |
7 | 7 |
8 #include "cc/trees/element_id.h" | 8 #include "cc/trees/element_id.h" |
9 #include "platform/PlatformExport.h" | 9 #include "platform/PlatformExport.h" |
10 #include "platform/wtf/HashFunctions.h" | 10 #include "platform/wtf/HashFunctions.h" |
11 #include "platform/wtf/HashSet.h" | 11 #include "platform/wtf/HashSet.h" |
12 #include "platform/wtf/HashTraits.h" | 12 #include "platform/wtf/HashTraits.h" |
13 | 13 |
14 namespace blink { | 14 namespace blink { |
15 | 15 |
16 const int kCompositorNamespaceBitCount = 3; | 16 const int kCompositorNamespaceBitCount = 3; |
17 | 17 |
18 enum class CompositorElementIdNamespace { | 18 enum class CompositorElementIdNamespace { |
19 kPrimary, | 19 kPrimary, |
| 20 kRootScroll, |
20 kScroll, | 21 kScroll, |
| 22 kScrollbar, |
| 23 kScrollState, |
21 kViewport, | 24 kViewport, |
22 kLinkHighlight, | 25 kLinkHighlight, |
23 kScrollbar, | |
24 // A sentinel to indicate the maximum representable namespace id | 26 // A sentinel to indicate the maximum representable namespace id |
25 // (the maximum is one less than this value). | 27 // (the maximum is one less than this value). |
26 kMaxRepresentableNamespaceId = 1 << kCompositorNamespaceBitCount | 28 kMaxRepresentableNamespaceId = 1 << kCompositorNamespaceBitCount |
27 }; | 29 }; |
28 | 30 |
29 using CompositorElementId = cc::ElementId; | 31 using CompositorElementId = cc::ElementId; |
| 32 using PaintLayerId = uint64_t; |
| 33 using ScrollbarId = uint64_t; |
30 using DOMNodeId = uint64_t; | 34 using DOMNodeId = uint64_t; |
31 using ScrollbarId = uint64_t; | |
32 | 35 |
33 CompositorElementId PLATFORM_EXPORT | 36 CompositorElementId PLATFORM_EXPORT |
| 37 CompositorElementIdFromPaintLayerId(PaintLayerId, |
| 38 CompositorElementIdNamespace); |
| 39 |
| 40 // This method should only be used for "special" layers that are not allocated |
| 41 // during the normal lifecycle. Examples include VisualViewport, |
| 42 // root scrolling (when rootLayerScrollingEnabled is off), and LinkHighlight. |
| 43 CompositorElementId PLATFORM_EXPORT |
34 CompositorElementIdFromDOMNodeId(DOMNodeId, CompositorElementIdNamespace); | 44 CompositorElementIdFromDOMNodeId(DOMNodeId, CompositorElementIdNamespace); |
35 | 45 |
36 CompositorElementId PLATFORM_EXPORT | 46 CompositorElementId PLATFORM_EXPORT |
37 CompositorElementIdFromScrollbarId(ScrollbarId, | 47 CompositorElementIdFromScrollbarId(ScrollbarId, |
38 CompositorElementIdNamespace); | 48 CompositorElementIdNamespace); |
39 | 49 |
40 // Note cc::ElementId has a hash function already implemented via | 50 // Note cc::ElementId has a hash function already implemented via |
41 // ElementIdHash::operator(). However for consistency's sake we choose to use | 51 // ElementIdHash::operator(). However for consistency's sake we choose to use |
42 // Blink's hash functions with Blink specific data structures. | 52 // Blink's hash functions with Blink specific data structures. |
43 struct CompositorElementIdHash { | 53 struct CompositorElementIdHash { |
(...skipping 21 matching lines...) Expand all Loading... |
65 } | 75 } |
66 }; | 76 }; |
67 | 77 |
68 using CompositorElementIdSet = HashSet<CompositorElementId, | 78 using CompositorElementIdSet = HashSet<CompositorElementId, |
69 CompositorElementIdHash, | 79 CompositorElementIdHash, |
70 CompositorElementIdHashTraits>; | 80 CompositorElementIdHashTraits>; |
71 | 81 |
72 } // namespace blink | 82 } // namespace blink |
73 | 83 |
74 #endif // CompositorElementId_h | 84 #endif // CompositorElementId_h |
OLD | NEW |