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

Side by Side Diff: ppapi/cpp/paint_aggregator.h

Issue 5624002: Move more code from headers to implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 10 years 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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 PPAPI_CPP_PAINT_AGGREGATOR_H_ 5 #ifndef PPAPI_CPP_PAINT_AGGREGATOR_H_
6 #define PPAPI_CPP_PAINT_AGGREGATOR_H_ 6 #define PPAPI_CPP_PAINT_AGGREGATOR_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "ppapi/cpp/point.h" 10 #include "ppapi/cpp/point.h"
11 #include "ppapi/cpp/rect.h" 11 #include "ppapi/cpp/rect.h"
12 12
13 namespace pp { 13 namespace pp {
14 14
15 // This class is responsible for aggregating multiple invalidation and scroll 15 // This class is responsible for aggregating multiple invalidation and scroll
16 // commands to produce a scroll and repaint sequence. You can use this manually 16 // commands to produce a scroll and repaint sequence. You can use this manually
17 // to track your updates, but most applications will use the PaintManager to 17 // to track your updates, but most applications will use the PaintManager to
18 // additionally handle the necessary callbacks on top of the PaintAggregator 18 // additionally handle the necessary callbacks on top of the PaintAggregator
19 // functionality. 19 // functionality.
20 // 20 //
21 // See http://code.google.com/p/ppapi/wiki/2DPaintingModel 21 // See http://code.google.com/p/ppapi/wiki/2DPaintingModel
22 class PaintAggregator { 22 class PaintAggregator {
23 public: 23 public:
24 struct PaintUpdate { 24 struct PaintUpdate {
25 PaintUpdate();
26 ~PaintUpdate();
27
25 // True if there is a scroll applied. This indicates that the scroll delta 28 // True if there is a scroll applied. This indicates that the scroll delta
26 // and scroll_rect are nonzero (just as a convenience). 29 // and scroll_rect are nonzero (just as a convenience).
27 bool has_scroll; 30 bool has_scroll;
28 31
29 // The amount to scroll by. Either the X or Y may be nonzero to indicate a 32 // The amount to scroll by. Either the X or Y may be nonzero to indicate a
30 // scroll in that direction, but there will never be a scroll in both 33 // scroll in that direction, but there will never be a scroll in both
31 // directions at the same time (this will be converted to a paint of the 34 // directions at the same time (this will be converted to a paint of the
32 // region instead). 35 // region instead).
33 // 36 //
34 // If there is no scroll, this will be (0, 0). 37 // If there is no scroll, this will be (0, 0).
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // 82 //
80 // - The scroll damange (area exposed by the scroll operation, if any) is 83 // - The scroll damange (area exposed by the scroll operation, if any) is
81 // maintained separately from the dirty rects generated by calling 84 // maintained separately from the dirty rects generated by calling
82 // InvalidateRect. We need to know this distinction for some operations. 85 // InvalidateRect. We need to know this distinction for some operations.
83 // 86 //
84 // - The paint bounds union is computed on the fly so we don't have to keep 87 // - The paint bounds union is computed on the fly so we don't have to keep
85 // a rectangle up-to-date as we do different operations. 88 // a rectangle up-to-date as we do different operations.
86 class InternalPaintUpdate { 89 class InternalPaintUpdate {
87 public: 90 public:
88 InternalPaintUpdate(); 91 InternalPaintUpdate();
92 ~InternalPaintUpdate();
89 93
90 // Computes the rect damaged by scrolling within |scroll_rect| by 94 // Computes the rect damaged by scrolling within |scroll_rect| by
91 // |scroll_delta|. This rect must be repainted. It is not included in 95 // |scroll_delta|. This rect must be repainted. It is not included in
92 // paint_rects or in the rect returned by GetPaintBounds. 96 // paint_rects or in the rect returned by GetPaintBounds.
93 Rect GetScrollDamage() const; 97 Rect GetScrollDamage() const;
94 98
95 // Returns the smallest rect containing all paint rects, not including the 99 // Returns the smallest rect containing all paint rects, not including the
96 // scroll damage rect. 100 // scroll damage rect.
97 Rect GetPaintBounds() const; 101 Rect GetPaintBounds() const;
98 102
(...skipping 22 matching lines...) Expand all
121 // important since there is typically some overhead in deciding what to 125 // important since there is typically some overhead in deciding what to
122 // paint. If your plugin is fast at doing these computations, raise this 126 // paint. If your plugin is fast at doing these computations, raise this
123 // threshold, if your plugin is slow, lower it (probably requires some 127 // threshold, if your plugin is slow, lower it (probably requires some
124 // tuning to find the right value). 128 // tuning to find the right value).
125 size_t max_paint_rects_; 129 size_t max_paint_rects_;
126 }; 130 };
127 131
128 } // namespace pp 132 } // namespace pp
129 133
130 #endif // PPAPI_CPP_PAINT_AGGREGATOR_H_ 134 #endif // PPAPI_CPP_PAINT_AGGREGATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698