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

Side by Side Diff: cc/playback/pixel_ref_map_unittest.cc

Issue 1279843004: cc: Plumb more details about pixel refs to tile manager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
« no previous file with comments | « cc/playback/pixel_ref_map.cc ('k') | cc/playback/raster_source.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 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 #include "cc/playback/pixel_ref_map.h" 5 #include "cc/playback/pixel_ref_map.h"
6 6
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "cc/playback/picture.h" 10 #include "cc/playback/picture.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 PixelRefMap::Iterator iterator; 58 PixelRefMap::Iterator iterator;
59 EXPECT_FALSE(iterator); 59 EXPECT_FALSE(iterator);
60 } 60 }
61 61
62 for (int y = 0; y < 4; ++y) { 62 for (int y = 0; y < 4; ++y) {
63 for (int x = 0; x < 4; ++x) { 63 for (int x = 0; x < 4; ++x) {
64 PixelRefMap::Iterator iterator(gfx::Rect(x * 512, y * 512, 500, 500), 64 PixelRefMap::Iterator iterator(gfx::Rect(x * 512, y * 512, 500, 500),
65 picture.get()); 65 picture.get());
66 if ((x + y) & 1) { 66 if ((x + y) & 1) {
67 EXPECT_TRUE(iterator) << x << " " << y; 67 EXPECT_TRUE(iterator) << x << " " << y;
68 EXPECT_TRUE(*iterator == discardable_bitmap[y][x].pixelRef()) 68 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[y][x].pixelRef())
69 << x << " " << y; 69 << x << " " << y;
70 EXPECT_EQ(gfx::RectF(x * 512 + 6, y * 512 + 6, 500, 500).ToString(),
71 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
70 EXPECT_FALSE(++iterator) << x << " " << y; 72 EXPECT_FALSE(++iterator) << x << " " << y;
71 } else { 73 } else {
72 EXPECT_FALSE(iterator) << x << " " << y; 74 EXPECT_FALSE(iterator) << x << " " << y;
73 } 75 }
74 } 76 }
75 } 77 }
76 // Capture 4 pixel refs. 78 // Capture 4 pixel refs.
77 { 79 {
78 PixelRefMap::Iterator iterator(gfx::Rect(512, 512, 2048, 2048), 80 PixelRefMap::Iterator iterator(gfx::Rect(512, 512, 2048, 2048),
79 picture.get()); 81 picture.get());
80 EXPECT_TRUE(iterator); 82 EXPECT_TRUE(iterator);
81 EXPECT_TRUE(*iterator == discardable_bitmap[1][2].pixelRef()); 83 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[1][2].pixelRef());
84 EXPECT_EQ(gfx::RectF(2 * 512 + 6, 512 + 6, 500, 500).ToString(),
85 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
82 EXPECT_TRUE(++iterator); 86 EXPECT_TRUE(++iterator);
83 EXPECT_TRUE(*iterator == discardable_bitmap[2][1].pixelRef()); 87 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[2][1].pixelRef());
88 EXPECT_EQ(gfx::RectF(512 + 6, 2 * 512 + 6, 500, 500).ToString(),
89 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
84 EXPECT_TRUE(++iterator); 90 EXPECT_TRUE(++iterator);
85 EXPECT_TRUE(*iterator == discardable_bitmap[2][3].pixelRef()); 91 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[2][3].pixelRef());
92 EXPECT_EQ(gfx::RectF(3 * 512 + 6, 2 * 512 + 6, 500, 500).ToString(),
93 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
86 EXPECT_TRUE(++iterator); 94 EXPECT_TRUE(++iterator);
87 EXPECT_TRUE(*iterator == discardable_bitmap[3][2].pixelRef()); 95 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[3][2].pixelRef());
96 EXPECT_EQ(gfx::RectF(2 * 512 + 6, 3 * 512 + 6, 500, 500).ToString(),
97 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
88 EXPECT_FALSE(++iterator); 98 EXPECT_FALSE(++iterator);
89 } 99 }
90 100
91 // Copy test. 101 {
92 PixelRefMap::Iterator iterator(gfx::Rect(512, 512, 2048, 2048), 102 // Copy test.
93 picture.get()); 103 PixelRefMap::Iterator iterator(gfx::Rect(512, 512, 2048, 2048),
94 EXPECT_TRUE(iterator); 104 picture.get());
95 EXPECT_TRUE(*iterator == discardable_bitmap[1][2].pixelRef()); 105 EXPECT_TRUE(iterator);
96 EXPECT_TRUE(++iterator); 106 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[1][2].pixelRef());
97 EXPECT_TRUE(*iterator == discardable_bitmap[2][1].pixelRef()); 107 EXPECT_EQ(gfx::RectF(2 * 512 + 6, 512 + 6, 500, 500).ToString(),
108 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
109 EXPECT_TRUE(++iterator);
110 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[2][1].pixelRef());
111 EXPECT_EQ(gfx::RectF(512 + 6, 2 * 512 + 6, 500, 500).ToString(),
112 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
98 113
99 // copy now points to the same spot as iterator, 114 // copy now points to the same spot as iterator,
100 // but both can be incremented independently. 115 // but both can be incremented independently.
101 PixelRefMap::Iterator copy = iterator; 116 PixelRefMap::Iterator copy = iterator;
102 EXPECT_TRUE(++iterator); 117 EXPECT_TRUE(++iterator);
103 EXPECT_TRUE(*iterator == discardable_bitmap[2][3].pixelRef()); 118 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[2][3].pixelRef());
104 EXPECT_TRUE(++iterator); 119 EXPECT_EQ(gfx::RectF(3 * 512 + 6, 2 * 512 + 6, 500, 500).ToString(),
105 EXPECT_TRUE(*iterator == discardable_bitmap[3][2].pixelRef()); 120 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
106 EXPECT_FALSE(++iterator); 121 EXPECT_TRUE(++iterator);
122 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[3][2].pixelRef());
123 EXPECT_EQ(gfx::RectF(2 * 512 + 6, 3 * 512 + 6, 500, 500).ToString(),
124 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
125 EXPECT_FALSE(++iterator);
107 126
108 EXPECT_TRUE(copy); 127 EXPECT_TRUE(copy);
109 EXPECT_TRUE(*copy == discardable_bitmap[2][1].pixelRef()); 128 EXPECT_TRUE(copy->pixel_ref == discardable_bitmap[2][1].pixelRef());
110 EXPECT_TRUE(++copy); 129 EXPECT_EQ(gfx::RectF(512 + 6, 2 * 512 + 6, 500, 500).ToString(),
111 EXPECT_TRUE(*copy == discardable_bitmap[2][3].pixelRef()); 130 gfx::SkRectToRectF(copy->pixel_ref_rect).ToString());
112 EXPECT_TRUE(++copy); 131 EXPECT_TRUE(++copy);
113 EXPECT_TRUE(*copy == discardable_bitmap[3][2].pixelRef()); 132 EXPECT_TRUE(copy->pixel_ref == discardable_bitmap[2][3].pixelRef());
114 EXPECT_FALSE(++copy); 133 EXPECT_EQ(gfx::RectF(3 * 512 + 6, 2 * 512 + 6, 500, 500).ToString(),
134 gfx::SkRectToRectF(copy->pixel_ref_rect).ToString());
135 EXPECT_TRUE(++copy);
136 EXPECT_TRUE(copy->pixel_ref == discardable_bitmap[3][2].pixelRef());
137 EXPECT_EQ(gfx::RectF(2 * 512 + 6, 3 * 512 + 6, 500, 500).ToString(),
138 gfx::SkRectToRectF(copy->pixel_ref_rect).ToString());
139 EXPECT_FALSE(++copy);
140 }
115 } 141 }
116 142
117 TEST(PixelRefMapTest, PixelRefMapIteratorNonZeroLayer) { 143 TEST(PixelRefMapTest, PixelRefMapIteratorNonZeroLayer) {
118 gfx::Rect layer_rect(1024, 0, 2048, 2048); 144 gfx::Rect layer_rect(1024, 0, 2048, 2048);
119 145
120 gfx::Size tile_grid_size(512, 512); 146 gfx::Size tile_grid_size(512, 512);
121 147
122 FakeContentLayerClient content_layer_client; 148 FakeContentLayerClient content_layer_client;
123 149
124 // Discardable pixel refs are found in the following grids: 150 // Discardable pixel refs are found in the following grids:
(...skipping 29 matching lines...) Expand all
154 PixelRefMap::Iterator iterator; 180 PixelRefMap::Iterator iterator;
155 EXPECT_FALSE(iterator); 181 EXPECT_FALSE(iterator);
156 } 182 }
157 183
158 for (int y = 0; y < 4; ++y) { 184 for (int y = 0; y < 4; ++y) {
159 for (int x = 0; x < 4; ++x) { 185 for (int x = 0; x < 4; ++x) {
160 PixelRefMap::Iterator iterator( 186 PixelRefMap::Iterator iterator(
161 gfx::Rect(1024 + x * 512, y * 512, 500, 500), picture.get()); 187 gfx::Rect(1024 + x * 512, y * 512, 500, 500), picture.get());
162 if ((x + y) & 1) { 188 if ((x + y) & 1) {
163 EXPECT_TRUE(iterator) << x << " " << y; 189 EXPECT_TRUE(iterator) << x << " " << y;
164 EXPECT_TRUE(*iterator == discardable_bitmap[y][x].pixelRef()); 190 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[y][x].pixelRef());
191 EXPECT_EQ(
192 gfx::RectF(1024 + x * 512 + 6, y * 512 + 6, 500, 500).ToString(),
193 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
165 EXPECT_FALSE(++iterator) << x << " " << y; 194 EXPECT_FALSE(++iterator) << x << " " << y;
166 } else { 195 } else {
167 EXPECT_FALSE(iterator) << x << " " << y; 196 EXPECT_FALSE(iterator) << x << " " << y;
168 } 197 }
169 } 198 }
170 } 199 }
171 // Capture 4 pixel refs. 200 // Capture 4 pixel refs.
172 { 201 {
173 PixelRefMap::Iterator iterator(gfx::Rect(1024 + 512, 512, 2048, 2048), 202 PixelRefMap::Iterator iterator(gfx::Rect(1024 + 512, 512, 2048, 2048),
174 picture.get()); 203 picture.get());
175 EXPECT_TRUE(iterator); 204 EXPECT_TRUE(iterator);
176 EXPECT_TRUE(*iterator == discardable_bitmap[1][2].pixelRef()); 205 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[1][2].pixelRef());
206 EXPECT_EQ(gfx::RectF(1024 + 2 * 512 + 6, 512 + 6, 500, 500).ToString(),
207 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
177 EXPECT_TRUE(++iterator); 208 EXPECT_TRUE(++iterator);
178 EXPECT_TRUE(*iterator == discardable_bitmap[2][1].pixelRef()); 209 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[2][1].pixelRef());
210 EXPECT_EQ(gfx::RectF(1024 + 512 + 6, 2 * 512 + 6, 500, 500).ToString(),
211 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
179 EXPECT_TRUE(++iterator); 212 EXPECT_TRUE(++iterator);
180 EXPECT_TRUE(*iterator == discardable_bitmap[2][3].pixelRef()); 213 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[2][3].pixelRef());
214 EXPECT_EQ(gfx::RectF(1024 + 3 * 512 + 6, 2 * 512 + 6, 500, 500).ToString(),
215 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
181 EXPECT_TRUE(++iterator); 216 EXPECT_TRUE(++iterator);
182 EXPECT_TRUE(*iterator == discardable_bitmap[3][2].pixelRef()); 217 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[3][2].pixelRef());
218 EXPECT_EQ(gfx::RectF(1024 + 2 * 512 + 6, 3 * 512 + 6, 500, 500).ToString(),
219 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
183 EXPECT_FALSE(++iterator); 220 EXPECT_FALSE(++iterator);
184 } 221 }
185 222
186 // Copy test. 223 // Copy test.
187 { 224 {
188 PixelRefMap::Iterator iterator(gfx::Rect(1024 + 512, 512, 2048, 2048), 225 PixelRefMap::Iterator iterator(gfx::Rect(1024 + 512, 512, 2048, 2048),
189 picture.get()); 226 picture.get());
190 EXPECT_TRUE(iterator); 227 EXPECT_TRUE(iterator);
191 EXPECT_TRUE(*iterator == discardable_bitmap[1][2].pixelRef()); 228 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[1][2].pixelRef());
229 EXPECT_EQ(gfx::RectF(1024 + 2 * 512 + 6, 512 + 6, 500, 500).ToString(),
230 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
192 EXPECT_TRUE(++iterator); 231 EXPECT_TRUE(++iterator);
193 EXPECT_TRUE(*iterator == discardable_bitmap[2][1].pixelRef()); 232 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[2][1].pixelRef());
233 EXPECT_EQ(gfx::RectF(1024 + 512 + 6, 2 * 512 + 6, 500, 500).ToString(),
234 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
194 235
195 // copy now points to the same spot as iterator, 236 // copy now points to the same spot as iterator,
196 // but both can be incremented independently. 237 // but both can be incremented independently.
197 PixelRefMap::Iterator copy = iterator; 238 PixelRefMap::Iterator copy = iterator;
198 EXPECT_TRUE(++iterator); 239 EXPECT_TRUE(++iterator);
199 EXPECT_TRUE(*iterator == discardable_bitmap[2][3].pixelRef()); 240 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[2][3].pixelRef());
241 EXPECT_EQ(gfx::RectF(1024 + 3 * 512 + 6, 2 * 512 + 6, 500, 500).ToString(),
242 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
200 EXPECT_TRUE(++iterator); 243 EXPECT_TRUE(++iterator);
201 EXPECT_TRUE(*iterator == discardable_bitmap[3][2].pixelRef()); 244 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[3][2].pixelRef());
245 EXPECT_EQ(gfx::RectF(1024 + 2 * 512 + 6, 3 * 512 + 6, 500, 500).ToString(),
246 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
202 EXPECT_FALSE(++iterator); 247 EXPECT_FALSE(++iterator);
203 248
204 EXPECT_TRUE(copy); 249 EXPECT_TRUE(copy);
205 EXPECT_TRUE(*copy == discardable_bitmap[2][1].pixelRef()); 250 EXPECT_TRUE(copy->pixel_ref == discardable_bitmap[2][1].pixelRef());
251 EXPECT_EQ(gfx::RectF(1024 + 512 + 6, 2 * 512 + 6, 500, 500).ToString(),
252 gfx::SkRectToRectF(copy->pixel_ref_rect).ToString());
206 EXPECT_TRUE(++copy); 253 EXPECT_TRUE(++copy);
207 EXPECT_TRUE(*copy == discardable_bitmap[2][3].pixelRef()); 254 EXPECT_TRUE(copy->pixel_ref == discardable_bitmap[2][3].pixelRef());
255 EXPECT_EQ(gfx::RectF(1024 + 3 * 512 + 6, 2 * 512 + 6, 500, 500).ToString(),
256 gfx::SkRectToRectF(copy->pixel_ref_rect).ToString());
208 EXPECT_TRUE(++copy); 257 EXPECT_TRUE(++copy);
209 EXPECT_TRUE(*copy == discardable_bitmap[3][2].pixelRef()); 258 EXPECT_TRUE(copy->pixel_ref == discardable_bitmap[3][2].pixelRef());
259 EXPECT_EQ(gfx::RectF(1024 + 2 * 512 + 6, 3 * 512 + 6, 500, 500).ToString(),
260 gfx::SkRectToRectF(copy->pixel_ref_rect).ToString());
210 EXPECT_FALSE(++copy); 261 EXPECT_FALSE(++copy);
211 } 262 }
212 263
213 // Non intersecting rects 264 // Non intersecting rects
214 { 265 {
215 PixelRefMap::Iterator iterator(gfx::Rect(0, 0, 1000, 1000), picture.get()); 266 PixelRefMap::Iterator iterator(gfx::Rect(0, 0, 1000, 1000), picture.get());
216 EXPECT_FALSE(iterator); 267 EXPECT_FALSE(iterator);
217 } 268 }
218 { 269 {
219 PixelRefMap::Iterator iterator(gfx::Rect(3500, 0, 1000, 1000), 270 PixelRefMap::Iterator iterator(gfx::Rect(3500, 0, 1000, 1000),
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 PixelRefMap::Iterator iterator; 323 PixelRefMap::Iterator iterator;
273 EXPECT_FALSE(iterator); 324 EXPECT_FALSE(iterator);
274 } 325 }
275 326
276 for (int y = 0; y < 4; ++y) { 327 for (int y = 0; y < 4; ++y) {
277 for (int x = 0; x < 4; ++x) { 328 for (int x = 0; x < 4; ++x) {
278 PixelRefMap::Iterator iterator(gfx::Rect(x * 512, y * 512 + 256, 1, 1), 329 PixelRefMap::Iterator iterator(gfx::Rect(x * 512, y * 512 + 256, 1, 1),
279 picture.get()); 330 picture.get());
280 if ((x + y) & 1) { 331 if ((x + y) & 1) {
281 EXPECT_TRUE(iterator) << x << " " << y; 332 EXPECT_TRUE(iterator) << x << " " << y;
282 EXPECT_TRUE(*iterator == discardable_bitmap[y][x].pixelRef()); 333 EXPECT_TRUE(iterator->pixel_ref == discardable_bitmap[y][x].pixelRef());
334 EXPECT_EQ(gfx::RectF(x * 512 + 6, y * 512 + 6, 500, 500).ToString(),
335 gfx::SkRectToRectF(iterator->pixel_ref_rect).ToString());
283 EXPECT_FALSE(++iterator) << x << " " << y; 336 EXPECT_FALSE(++iterator) << x << " " << y;
284 } else { 337 } else {
285 EXPECT_FALSE(iterator) << x << " " << y; 338 EXPECT_FALSE(iterator) << x << " " << y;
286 } 339 }
287 } 340 }
288 } 341 }
289 } 342 }
290 343
291 } // namespace 344 } // namespace
292 } // namespace cc 345 } // namespace cc
OLDNEW
« no previous file with comments | « cc/playback/pixel_ref_map.cc ('k') | cc/playback/raster_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698