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: third_party/WebKit/Source/platform/graphics/CompositorElementId.cpp

Issue 2890953002: [SPv1] Always set a CompositorElementId on main graphics layers; use PaintLayer id. (Closed)
Patch Set: none Created 3 years, 7 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
OLDNEW
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 #include "platform/graphics/CompositorElementId.h" 5 #include "platform/graphics/CompositorElementId.h"
6 6
7 #include "platform/RuntimeEnabledFeatures.h"
8
7 namespace blink { 9 namespace blink {
8 10
9 static CompositorElementId CreateCompositorElementId( 11 static CompositorElementId CreateCompositorElementId(
10 uint64_t blink_id, 12 uint64_t blink_id,
11 CompositorElementIdNamespace namespace_id) { 13 CompositorElementIdNamespace namespace_id) {
12 DCHECK( 14 DCHECK(
13 blink_id > 0 && 15 blink_id > 0 &&
14 blink_id < 16 blink_id <
15 std::numeric_limits<uint64_t>::max() / 17 std::numeric_limits<uint64_t>::max() /
16 static_cast<unsigned>( 18 static_cast<unsigned>(
17 CompositorElementIdNamespace::kMaxRepresentableNamespaceId)); 19 CompositorElementIdNamespace::kMaxRepresentableNamespaceId));
18 // Shift to make room for namespace_id enum bits. 20 // Shift to make room for namespace_id enum bits.
19 cc::ElementIdType id = blink_id << kCompositorNamespaceBitCount; 21 cc::ElementIdType id = blink_id << kCompositorNamespaceBitCount;
20 id += static_cast<uint64_t>(namespace_id); 22 id += static_cast<uint64_t>(namespace_id);
21 return CompositorElementId(id); 23 return CompositorElementId(id);
22 } 24 }
23 25
24 CompositorElementId PLATFORM_EXPORT 26 CompositorElementId PLATFORM_EXPORT
27 CompositorElementIdFromPaintLayerId(PaintLayerId id,
28 CompositorElementIdNamespace namespace_id) {
29 DCHECK(namespace_id == CompositorElementIdNamespace::kPrimary ||
30 namespace_id == CompositorElementIdNamespace::kScroll);
31 return CreateCompositorElementId(id, namespace_id);
32 }
33
34 CompositorElementId PLATFORM_EXPORT
25 CompositorElementIdFromDOMNodeId(DOMNodeId id, 35 CompositorElementIdFromDOMNodeId(DOMNodeId id,
26 CompositorElementIdNamespace namespace_id) { 36 CompositorElementIdNamespace namespace_id) {
37 DCHECK(namespace_id == CompositorElementIdNamespace::kViewport ||
38 namespace_id == CompositorElementIdNamespace::kLinkHighlight ||
39 namespace_id == CompositorElementIdNamespace::kRootScroll ||
40 namespace_id == CompositorElementIdNamespace::kScrollState ||
41 namespace_id ==
42 CompositorElementIdNamespace::kPrimaryCompositorProxy ||
43 namespace_id == CompositorElementIdNamespace::kScrollCompositorProxy);
27 return CreateCompositorElementId(id, namespace_id); 44 return CreateCompositorElementId(id, namespace_id);
28 } 45 }
29 46
30 CompositorElementId PLATFORM_EXPORT 47 CompositorElementId PLATFORM_EXPORT
31 CompositorElementIdFromScrollbarId(ScrollbarId id, 48 CompositorElementIdFromScrollbarId(ScrollbarId id,
32 CompositorElementIdNamespace namespace_id) { 49 CompositorElementIdNamespace namespace_id) {
50 DCHECK(namespace_id == CompositorElementIdNamespace::kScrollbar);
33 return CreateCompositorElementId(id, namespace_id); 51 return CreateCompositorElementId(id, namespace_id);
34 } 52 }
35 53
36 CompositorElementIdNamespace NamespaceFromCompositorElementId( 54 CompositorElementIdNamespace NamespaceFromCompositorElementId(
37 CompositorElementId element_id) { 55 CompositorElementId element_id) {
38 return static_cast<CompositorElementIdNamespace>( 56 return static_cast<CompositorElementIdNamespace>(
39 element_id.id_ % 57 element_id.id_ %
40 static_cast<uint64_t>( 58 static_cast<uint64_t>(
41 CompositorElementIdNamespace::kMaxRepresentableNamespaceId)); 59 CompositorElementIdNamespace::kMaxRepresentableNamespaceId));
42 } 60 }
43 61
44 } // namespace blink 62 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698