Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: Source/platform/graphics/paint/SubtreeDisplayItem.h

Issue 1193433004: Blink-side contiguous allocation of display items. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add ListContainer::AllocateAndConstructWithArguments and a TODO in DisplayItemList::findMatchingIte… Created 5 years, 5 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 SubtreeDisplayItem_h 5 #ifndef SubtreeDisplayItem_h
6 #define SubtreeDisplayItem_h 6 #define SubtreeDisplayItem_h
7 7
8 #include "platform/geometry/FloatRect.h" 8 #include "platform/geometry/FloatRect.h"
9 #include "platform/graphics/paint/DisplayItem.h" 9 #include "platform/graphics/paint/DisplayItem.h"
10 #include "wtf/Assertions.h" 10 #include "wtf/Assertions.h"
11 11
12 namespace blink { 12 namespace blink {
13 13
14 class PLATFORM_EXPORT SubtreeCachedDisplayItem : public DisplayItem { 14 class PLATFORM_EXPORT SubtreeCachedDisplayItem : public DisplayItem {
15 WTF_MAKE_FAST_ALLOCATED(SubtreeCachedDisplayItem);
16 public: 15 public:
17 static PassOwnPtr<SubtreeCachedDisplayItem> create(const DisplayItemClientWr apper& client, Type type)
18 {
19 return adoptPtr(new SubtreeCachedDisplayItem(client, type));
20 }
21
22 private:
23 SubtreeCachedDisplayItem(const DisplayItemClientWrapper& client, Type type) 16 SubtreeCachedDisplayItem(const DisplayItemClientWrapper& client, Type type)
24 : DisplayItem(client, type) 17 : DisplayItem(client, type)
25 { 18 {
26 ASSERT(isSubtreeCachedType(type)); 19 ASSERT(isSubtreeCachedType(type));
27 } 20 }
28 21
29 virtual void replay(GraphicsContext&) override final { ASSERT_NOT_REACHED(); } 22 virtual void replay(GraphicsContext&) override final { ASSERT_NOT_REACHED(); }
30 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override final { ASSERT_NOT_REACHED(); } 23 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override final { ASSERT_NOT_REACHED(); }
31 }; 24 };
32 25
33 class PLATFORM_EXPORT BeginSubtreeDisplayItem : public PairedBeginDisplayItem { 26 class PLATFORM_EXPORT BeginSubtreeDisplayItem : public PairedBeginDisplayItem {
34 WTF_MAKE_FAST_ALLOCATED(BeginSubtreeDisplayItem);
35 public: 27 public:
36 static PassOwnPtr<BeginSubtreeDisplayItem> create(const DisplayItemClientWra pper& client, Type type)
37 {
38 return adoptPtr(new BeginSubtreeDisplayItem(client, type));
39 }
40
41 private:
42 BeginSubtreeDisplayItem(const DisplayItemClientWrapper& client, Type type) 28 BeginSubtreeDisplayItem(const DisplayItemClientWrapper& client, Type type)
43 : PairedBeginDisplayItem(client, type) 29 : PairedBeginDisplayItem(client, type)
44 { 30 {
45 ASSERT(isBeginSubtreeType(type)); 31 ASSERT(isBeginSubtreeType(type));
46 } 32 }
47 }; 33 };
48 34
49 class PLATFORM_EXPORT EndSubtreeDisplayItem : public PairedEndDisplayItem { 35 class PLATFORM_EXPORT EndSubtreeDisplayItem : public PairedEndDisplayItem {
50 WTF_MAKE_FAST_ALLOCATED(EndSubtreeDisplayItem);
51 public: 36 public:
52 static PassOwnPtr<EndSubtreeDisplayItem> create(const DisplayItemClientWrapp er& client, Type type)
53 {
54 return adoptPtr(new EndSubtreeDisplayItem(client, type));
55 }
56
57 private:
58 EndSubtreeDisplayItem(const DisplayItemClientWrapper& client, Type type) 37 EndSubtreeDisplayItem(const DisplayItemClientWrapper& client, Type type)
59 : PairedEndDisplayItem(client, type) 38 : PairedEndDisplayItem(client, type)
60 { 39 {
61 ASSERT(isEndSubtreeType(type)); 40 ASSERT(isEndSubtreeType(type));
62 } 41 }
63 42
64 #if ENABLE(ASSERT) 43 #if ENABLE(ASSERT)
65 virtual bool isEndAndPairedWith(DisplayItem::Type otherType) const override final { return DisplayItem::isBeginSubtreeType(otherType); } 44 virtual bool isEndAndPairedWith(DisplayItem::Type otherType) const override final { return DisplayItem::isBeginSubtreeType(otherType); }
66 #endif 45 #endif
67 }; 46 };
68 47
69 } // namespace blink 48 } // namespace blink
70 49
71 #endif // SubtreeDisplayItem_h 50 #endif // SubtreeDisplayItem_h
OLDNEW
« no previous file with comments | « Source/platform/graphics/paint/ScrollDisplayItem.h ('k') | Source/platform/graphics/paint/Transform3DDisplayItem.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698