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

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

Issue 1296963002: Put transform tree building in DisplayItemPropertyTreeBuilder. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rename State to BuilderState Created 5 years, 4 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 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 DisplayItemTransformTree_h 5 #ifndef DisplayItemTransformTree_h
6 #define DisplayItemTransformTree_h 6 #define DisplayItemTransformTree_h
7 7
8 #include "platform/PlatformExport.h" 8 #include "platform/PlatformExport.h"
9 #include "platform/transforms/TransformationMatrix.h" 9 #include "platform/transforms/TransformationMatrix.h"
10 #include "public/platform/WebDisplayItemTransformTree.h" 10 #include "public/platform/WebDisplayItemTransformTree.h"
11 #include "wtf/Vector.h" 11 #include "wtf/Vector.h"
12 12
13 namespace blink { 13 namespace blink {
14 14
15 // Represents the hierarchy of transforms which apply to ranges of a display 15 // Represents the hierarchy of transforms which apply to ranges of a display
16 // item list and may be of interest to the compositor. 16 // item list and may be of interest to the compositor.
17 // 17 //
18 // This class is also the private implementation of WebDisplayItemTransformTree. 18 // This class is also the private implementation of WebDisplayItemTransformTree.
19 // For more detail, see WebDisplayItemTransformTree.h. 19 // For more detail, see WebDisplayItemTransformTree.h.
20 class PLATFORM_EXPORT DisplayItemTransformTree { 20 class PLATFORM_EXPORT DisplayItemTransformTree {
21 public: 21 public:
22 using TransformNode = WebDisplayItemTransformTree::TransformNode; 22 using TransformNode = WebDisplayItemTransformTree::TransformNode;
23 using RangeRecord = WebDisplayItemTransformTree::RangeRecord;
24 enum : size_t { kInvalidIndex = WebDisplayItemTransformTree::kInvalidIndex } ; 23 enum : size_t { kInvalidIndex = WebDisplayItemTransformTree::kInvalidIndex } ;
25 24
26 DisplayItemTransformTree(); 25 DisplayItemTransformTree();
27 ~DisplayItemTransformTree(); 26 ~DisplayItemTransformTree();
28 27
29 size_t nodeCount() const { return m_nodes.size(); } 28 size_t nodeCount() const { return m_nodes.size(); }
30 TransformNode& nodeAt(size_t index) { return m_nodes[index]; } 29 TransformNode& nodeAt(size_t index) { return m_nodes[index]; }
31 const TransformNode& nodeAt(size_t index) const { return m_nodes[index]; } 30 const TransformNode& nodeAt(size_t index) const { return m_nodes[index]; }
32 31
33 size_t rangeRecordCount() const { return m_rangeRecords.size(); }
34 RangeRecord& rangeRecordAt(size_t index) { return m_rangeRecords[index]; }
35 const RangeRecord& rangeRecordAt(size_t index) const { return m_rangeRecords [index]; }
36
37 TransformNode& parentNode(const TransformNode& node)
38 {
39 ASSERT(!node.isRoot());
40 return nodeAt(node.parentNodeIndex);
41 }
42 const TransformNode& parentNode(const TransformNode& node) const
43 {
44 ASSERT(!node.isRoot());
45 return nodeAt(node.parentNodeIndex);
46 }
47
48 // Returns the new node index. 32 // Returns the new node index.
49 size_t createNewNode(size_t parentNodeIndex, const TransformationMatrix& mat rix) 33 size_t createNewNode(size_t parentNodeIndex, const TransformationMatrix& mat rix)
50 { 34 {
51 ASSERT(parentNodeIndex != kInvalidIndex); 35 ASSERT(parentNodeIndex != kInvalidIndex);
52 m_nodes.append(TransformNode( 36 m_nodes.append(TransformNode(
53 parentNodeIndex, 37 parentNodeIndex,
54 TransformationMatrix::toSkMatrix44(matrix))); 38 TransformationMatrix::toSkMatrix44(matrix)));
55 return m_nodes.size() - 1; 39 return m_nodes.size() - 1;
56 } 40 }
57 41
58 void appendRangeRecord(size_t beginIndex, size_t endIndex, size_t nodeIndex, const FloatSize& offset)
59 {
60 m_rangeRecords.append(RangeRecord(beginIndex, endIndex, nodeIndex, offse t));
61 }
62
63 private: 42 private:
64 Vector<TransformNode> m_nodes; 43 Vector<TransformNode> m_nodes;
65 Vector<RangeRecord> m_rangeRecords;
66 }; 44 };
67 45
68 } // namespace blink 46 } // namespace blink
69 47
70 #endif // DisplayItemTransformTree_h 48 #endif // DisplayItemTransformTree_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698