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

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

Issue 892293002: First version of new merge algorithm (not enabled yet) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase again again Created 5 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 DisplayItemList_h 5 #ifndef DisplayItemList_h
6 #define DisplayItemList_h 6 #define DisplayItemList_h
7 7
8 #include "platform/PlatformExport.h" 8 #include "platform/PlatformExport.h"
9 #include "platform/graphics/paint/DisplayItem.h" 9 #include "platform/graphics/paint/DisplayItem.h"
10 #include "wtf/HashSet.h" 10 #include "wtf/HashMap.h"
11 #include "wtf/PassOwnPtr.h" 11 #include "wtf/PassOwnPtr.h"
12 #include "wtf/Vector.h" 12 #include "wtf/Vector.h"
13 13
14 namespace blink { 14 namespace blink {
15 15
16 class GraphicsContext; 16 class GraphicsContext;
17 17
18 typedef Vector<OwnPtr<DisplayItem>> PaintList; 18 typedef Vector<OwnPtr<DisplayItem>> PaintList;
19 19
20 class PLATFORM_EXPORT DisplayItemList { 20 class PLATFORM_EXPORT DisplayItemList {
(...skipping 15 matching lines...) Expand all
36 void replay(GraphicsContext*); 36 void replay(GraphicsContext*);
37 37
38 #ifndef NDEBUG 38 #ifndef NDEBUG
39 void showDebugData() const; 39 void showDebugData() const;
40 #endif 40 #endif
41 41
42 protected: 42 protected:
43 DisplayItemList() { }; 43 DisplayItemList() { };
44 44
45 private: 45 private:
46 PaintList::iterator findNextMatchingCachedItem(PaintList::iterator, const Di splayItem&); 46 friend class RenderDrawingRecorderTest;
47 bool wasInvalidated(const DisplayItem&) const; 47 friend class ViewDisplayListTest;
48
48 void updatePaintList(); 49 void updatePaintList();
49 50
50 #ifndef NDEBUG 51 #ifndef NDEBUG
51 WTF::String paintListAsDebugString(const PaintList&) const; 52 WTF::String paintListAsDebugString(const PaintList&) const;
52 #endif 53 #endif
53 54
55 // Indices into PaintList of all DrawingDisplayItems and BeginSubtreeDisplay Items of each client.
56 typedef HashMap<DisplayItemClient, Vector<size_t>> DisplayItemIndicesByClien tMap;
57
58 size_t findMatchingCachedItem(const DisplayItem&);
59 static void appendDisplayItem(PaintList&, DisplayItemIndicesByClientMap&, WT F::PassOwnPtr<DisplayItem>);
60 void copyCachedItems(const DisplayItem&, PaintList&, DisplayItemIndicesByCli entMap&);
61
54 PaintList m_paintList; 62 PaintList m_paintList;
55 HashSet<DisplayItemClient> m_cachedClients; 63 DisplayItemIndicesByClientMap m_cachedDisplayItemIndicesByClient;
56 PaintList m_newPaints; 64 PaintList m_newPaints;
57 }; 65 };
58 66
59 } // namespace blink 67 } // namespace blink
60 68
61 #endif // DisplayItemList_h 69 #endif // DisplayItemList_h
OLDNEW
« no previous file with comments | « Source/platform/graphics/paint/DisplayItem.cpp ('k') | Source/platform/graphics/paint/DisplayItemList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698