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

Side by Side Diff: cc/base/tiling_data.h

Issue 2748263002: Move cc::DisplayItemList and related classes into cc/paint/ (Closed)
Patch Set: Merge branch 'master' into ccpaint Created 3 years, 9 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
« no previous file with comments | « cc/base/switches.h ('k') | cc/base/unique_notifier.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 The Chromium Authors. All rights reserved. 1 // Copyright 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 CC_BASE_TILING_DATA_H_ 5 #ifndef CC_BASE_TILING_DATA_H_
6 #define CC_BASE_TILING_DATA_H_ 6 #define CC_BASE_TILING_DATA_H_
7 7
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "cc/base/cc_export.h" 11 #include "cc/base/base_export.h"
12 #include "cc/base/index_rect.h" 12 #include "cc/base/index_rect.h"
13 #include "cc/base/reverse_spiral_iterator.h" 13 #include "cc/base/reverse_spiral_iterator.h"
14 #include "cc/base/spiral_iterator.h" 14 #include "cc/base/spiral_iterator.h"
15 #include "ui/gfx/geometry/rect.h" 15 #include "ui/gfx/geometry/rect.h"
16 #include "ui/gfx/geometry/size.h" 16 #include "ui/gfx/geometry/size.h"
17 17
18 namespace gfx { 18 namespace gfx {
19 class RectF; 19 class RectF;
20 class Vector2d; 20 class Vector2d;
21 } 21 }
22 22
23 namespace cc { 23 namespace cc {
24 24
25 class CC_EXPORT TilingData { 25 class CC_BASE_EXPORT TilingData {
26 public: 26 public:
27 TilingData(); 27 TilingData();
28 TilingData(const gfx::Size& max_texture_size, 28 TilingData(const gfx::Size& max_texture_size,
29 const gfx::Size& tiling_size, 29 const gfx::Size& tiling_size,
30 bool has_border_texels); 30 bool has_border_texels);
31 TilingData(const gfx::Size& max_texture_size, 31 TilingData(const gfx::Size& max_texture_size,
32 const gfx::Size& tiling_size, 32 const gfx::Size& tiling_size,
33 int border_texels); 33 int border_texels);
34 34
35 gfx::Size tiling_size() const { return tiling_size_; } 35 gfx::Size tiling_size() const { return tiling_size_; }
(...skipping 29 matching lines...) Expand all
65 int TilePositionX(int x_index) const; 65 int TilePositionX(int x_index) const;
66 int TilePositionY(int y_index) const; 66 int TilePositionY(int y_index) const;
67 int TileSizeX(int x_index) const; 67 int TileSizeX(int x_index) const;
68 int TileSizeY(int y_index) const; 68 int TileSizeY(int y_index) const;
69 69
70 gfx::RectF TexelExtent(int i, int j) const; 70 gfx::RectF TexelExtent(int i, int j) const;
71 71
72 // Difference between TileBound's and TileBoundWithBorder's origin(). 72 // Difference between TileBound's and TileBoundWithBorder's origin().
73 gfx::Vector2d TextureOffset(int x_index, int y_index) const; 73 gfx::Vector2d TextureOffset(int x_index, int y_index) const;
74 74
75 class CC_EXPORT BaseIterator { 75 class CC_BASE_EXPORT BaseIterator {
76 public: 76 public:
77 operator bool() const { return index_x_ != -1 && index_y_ != -1; } 77 operator bool() const { return index_x_ != -1 && index_y_ != -1; }
78 78
79 int index_x() const { return index_x_; } 79 int index_x() const { return index_x_; }
80 int index_y() const { return index_y_; } 80 int index_y() const { return index_y_; }
81 std::pair<int, int> index() const { 81 std::pair<int, int> index() const {
82 return std::make_pair(index_x_, index_y_); 82 return std::make_pair(index_x_, index_y_);
83 } 83 }
84 84
85 protected: 85 protected:
86 BaseIterator(); 86 BaseIterator();
87 void done() { 87 void done() {
88 index_x_ = -1; 88 index_x_ = -1;
89 index_y_ = -1; 89 index_y_ = -1;
90 } 90 }
91 91
92 int index_x_; 92 int index_x_;
93 int index_y_; 93 int index_y_;
94 }; 94 };
95 95
96 // Iterate through tiles whose bounds + optional border intersect with |rect|. 96 // Iterate through tiles whose bounds + optional border intersect with |rect|.
97 class CC_EXPORT Iterator : public BaseIterator { 97 class CC_BASE_EXPORT Iterator : public BaseIterator {
98 public: 98 public:
99 Iterator(); 99 Iterator();
100 Iterator(const TilingData* tiling_data, 100 Iterator(const TilingData* tiling_data,
101 const gfx::Rect& consider_rect, 101 const gfx::Rect& consider_rect,
102 bool include_borders); 102 bool include_borders);
103 Iterator& operator++(); 103 Iterator& operator++();
104 104
105 private: 105 private:
106 IndexRect index_rect_; 106 IndexRect index_rect_;
107 }; 107 };
108 108
109 class CC_EXPORT BaseDifferenceIterator : public BaseIterator { 109 class CC_BASE_EXPORT BaseDifferenceIterator : public BaseIterator {
110 protected: 110 protected:
111 BaseDifferenceIterator(); 111 BaseDifferenceIterator();
112 BaseDifferenceIterator(const TilingData* tiling_data, 112 BaseDifferenceIterator(const TilingData* tiling_data,
113 const gfx::Rect& consider_rect, 113 const gfx::Rect& consider_rect,
114 const gfx::Rect& ignore_rect); 114 const gfx::Rect& ignore_rect);
115 115
116 bool HasConsiderRect() const; 116 bool HasConsiderRect() const;
117 117
118 IndexRect consider_index_rect_; 118 IndexRect consider_index_rect_;
119 IndexRect ignore_index_rect_; 119 IndexRect ignore_index_rect_;
120 }; 120 };
121 121
122 // Iterate through all indices whose bounds (not including borders) intersect 122 // Iterate through all indices whose bounds (not including borders) intersect
123 // with |consider| but which also do not intersect with |ignore|. 123 // with |consider| but which also do not intersect with |ignore|.
124 class CC_EXPORT DifferenceIterator : public BaseDifferenceIterator { 124 class CC_BASE_EXPORT DifferenceIterator : public BaseDifferenceIterator {
125 public: 125 public:
126 DifferenceIterator(); 126 DifferenceIterator();
127 DifferenceIterator(const TilingData* tiling_data, 127 DifferenceIterator(const TilingData* tiling_data,
128 const gfx::Rect& consider_rect, 128 const gfx::Rect& consider_rect,
129 const gfx::Rect& ignore_rect); 129 const gfx::Rect& ignore_rect);
130 DifferenceIterator& operator++(); 130 DifferenceIterator& operator++();
131 }; 131 };
132 132
133 // Iterate through all indices whose bounds + border intersect with 133 // Iterate through all indices whose bounds + border intersect with
134 // |consider| but which also do not intersect with |ignore|. The iterator 134 // |consider| but which also do not intersect with |ignore|. The iterator
135 // order is a counterclockwise spiral around the given center. 135 // order is a counterclockwise spiral around the given center.
136 class CC_EXPORT SpiralDifferenceIterator : public BaseDifferenceIterator { 136 class CC_BASE_EXPORT SpiralDifferenceIterator
137 : public BaseDifferenceIterator {
137 public: 138 public:
138 SpiralDifferenceIterator(); 139 SpiralDifferenceIterator();
139 SpiralDifferenceIterator(const TilingData* tiling_data, 140 SpiralDifferenceIterator(const TilingData* tiling_data,
140 const gfx::Rect& consider_rect, 141 const gfx::Rect& consider_rect,
141 const gfx::Rect& ignore_rect, 142 const gfx::Rect& ignore_rect,
142 const gfx::Rect& center_rect); 143 const gfx::Rect& center_rect);
143 SpiralDifferenceIterator& operator++(); 144 SpiralDifferenceIterator& operator++();
144 145
145 private: 146 private:
146 SpiralIterator spiral_iterator_; 147 SpiralIterator spiral_iterator_;
147 }; 148 };
148 149
149 class CC_EXPORT ReverseSpiralDifferenceIterator 150 class CC_BASE_EXPORT ReverseSpiralDifferenceIterator
150 : public BaseDifferenceIterator { 151 : public BaseDifferenceIterator {
151 public: 152 public:
152 ReverseSpiralDifferenceIterator(); 153 ReverseSpiralDifferenceIterator();
153 ReverseSpiralDifferenceIterator(const TilingData* tiling_data, 154 ReverseSpiralDifferenceIterator(const TilingData* tiling_data,
154 const gfx::Rect& consider_rect, 155 const gfx::Rect& consider_rect,
155 const gfx::Rect& ignore_rect, 156 const gfx::Rect& ignore_rect,
156 const gfx::Rect& center_rect); 157 const gfx::Rect& center_rect);
157 ReverseSpiralDifferenceIterator& operator++(); 158 ReverseSpiralDifferenceIterator& operator++();
158 159
159 private: 160 private:
(...skipping 15 matching lines...) Expand all
175 int border_texels_; 176 int border_texels_;
176 177
177 // These are computed values. 178 // These are computed values.
178 int num_tiles_x_; 179 int num_tiles_x_;
179 int num_tiles_y_; 180 int num_tiles_y_;
180 }; 181 };
181 182
182 } // namespace cc 183 } // namespace cc
183 184
184 #endif // CC_BASE_TILING_DATA_H_ 185 #endif // CC_BASE_TILING_DATA_H_
OLDNEW
« no previous file with comments | « cc/base/switches.h ('k') | cc/base/unique_notifier.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698