OLD | NEW |
---|---|
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 #include "cc/resources/tiling_set_raster_queue_all.h" | 5 #include "cc/resources/tiling_set_raster_queue_all.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "cc/resources/picture_layer_tiling_set.h" | 9 #include "cc/resources/picture_layer_tiling_set.h" |
10 #include "cc/resources/tile.h" | 10 #include "cc/resources/tile.h" |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
146 TilePriority::PriorityBin tile_type = stages_[current_stage_].tile_type; | 146 TilePriority::PriorityBin tile_type = stages_[current_stage_].tile_type; |
147 | 147 |
148 if (!iterators_[index].done() && iterators_[index].type() == tile_type) | 148 if (!iterators_[index].done() && iterators_[index].type() == tile_type) |
149 break; | 149 break; |
150 ++current_stage_; | 150 ++current_stage_; |
151 } | 151 } |
152 } | 152 } |
153 | 153 |
154 // OnePriorityRectIterator | 154 // OnePriorityRectIterator |
155 TilingSetRasterQueueAll::OnePriorityRectIterator::OnePriorityRectIterator() | 155 TilingSetRasterQueueAll::OnePriorityRectIterator::OnePriorityRectIterator() |
156 : tile_(nullptr), tiling_(nullptr), tiling_data_(nullptr) { | 156 : tile_(nullptr), |
157 tiling_(nullptr), | |
158 pending_twin_tiling_(nullptr), | |
159 tiling_data_(nullptr) { | |
157 } | 160 } |
158 | 161 |
159 TilingSetRasterQueueAll::OnePriorityRectIterator::OnePriorityRectIterator( | 162 TilingSetRasterQueueAll::OnePriorityRectIterator::OnePriorityRectIterator( |
160 PictureLayerTiling* tiling, | 163 PictureLayerTiling* tiling, |
161 TilingData* tiling_data) | 164 TilingData* tiling_data, |
162 : tile_(nullptr), tiling_(tiling), tiling_data_(tiling_data) { | 165 PictureLayerTiling::PriorityRect priority_rect) |
166 : tile_(nullptr), | |
167 tiling_(tiling), | |
168 pending_twin_tiling_( | |
vmpstr
2015/05/05 18:04:02
Why are you adding this here? Why is getting tilin
USE eero AT chromium.org
2015/05/06 12:05:20
As a premature (size) optimisation. I removed it.
| |
169 tiling->tree() == ACTIVE_TREE | |
170 ? tiling->client()->GetPendingOrActiveTwinTiling(tiling) | |
171 : nullptr), | |
172 tiling_data_(tiling_data), | |
173 priority_rect_(priority_rect) { | |
163 } | 174 } |
164 | 175 |
165 template <typename TilingIteratorType> | 176 template <typename TilingIteratorType> |
166 void TilingSetRasterQueueAll::OnePriorityRectIterator::AdvanceToNextTile( | 177 void TilingSetRasterQueueAll::OnePriorityRectIterator::AdvanceToNextTile( |
167 TilingIteratorType* iterator) { | 178 TilingIteratorType* iterator) { |
168 tile_ = nullptr; | 179 bool found_tile = false; |
169 while (!tile_ || !TileNeedsRaster(tile_)) { | 180 while (!found_tile) { |
170 ++(*iterator); | 181 ++(*iterator); |
171 if (!(*iterator)) { | 182 if (!(*iterator)) { |
172 tile_ = nullptr; | 183 tile_ = nullptr; |
173 return; | 184 break; |
174 } | 185 } |
175 tile_ = tiling_->TileAt(iterator->index_x(), iterator->index_y()); | 186 found_tile = GetFirstTileAndCheckIfValid(iterator); |
176 } | 187 } |
177 tiling_->UpdateTilePriority(tile_); | |
178 } | 188 } |
179 | 189 |
180 template <typename TilingIteratorType> | 190 template <typename TilingIteratorType> |
181 bool TilingSetRasterQueueAll::OnePriorityRectIterator:: | 191 bool TilingSetRasterQueueAll::OnePriorityRectIterator:: |
182 GetFirstTileAndCheckIfValid(TilingIteratorType* iterator) { | 192 GetFirstTileAndCheckIfValid(TilingIteratorType* iterator) { |
183 tile_ = tiling_->TileAt(iterator->index_x(), iterator->index_y()); | 193 tile_ = tiling_->TileAt(iterator->index_x(), iterator->index_y()); |
184 if (!tile_ || !TileNeedsRaster(tile_)) { | 194 if (!tile_ || !TileNeedsRaster(tile_)) { |
185 tile_ = nullptr; | 195 tile_ = nullptr; |
186 return false; | 196 return false; |
187 } | 197 } |
188 tiling_->UpdateTilePriority(tile_); | 198 if (priority_rect_ > PictureLayerTiling::PriorityRect::PENDING_VISIBLE_RECT && |
199 pending_twin_tiling_ && | |
200 pending_twin_tiling_->current_visible_rect().Intersects( | |
201 tile_->content_rect())) { | |
202 return false; | |
203 } | |
204 tiling_->UpdateTilePriority(tile_, priority_rect_); | |
189 return true; | 205 return true; |
190 } | 206 } |
191 | 207 |
192 // VisibleTilingIterator. | 208 // VisibleTilingIterator. |
193 TilingSetRasterQueueAll::VisibleTilingIterator::VisibleTilingIterator( | 209 TilingSetRasterQueueAll::VisibleTilingIterator::VisibleTilingIterator( |
194 PictureLayerTiling* tiling, | 210 PictureLayerTiling* tiling, |
195 TilingData* tiling_data) | 211 TilingData* tiling_data) |
196 : OnePriorityRectIterator(tiling, tiling_data) { | 212 : OnePriorityRectIterator(tiling, |
213 tiling_data, | |
214 PictureLayerTiling::VISIBLE_RECT) { | |
197 if (!tiling_->has_visible_rect_tiles()) | 215 if (!tiling_->has_visible_rect_tiles()) |
198 return; | 216 return; |
199 iterator_ = | 217 iterator_ = |
200 TilingData::Iterator(tiling_data_, tiling_->current_visible_rect(), | 218 TilingData::Iterator(tiling_data_, tiling_->current_visible_rect(), |
201 false /* include_borders */); | 219 false /* include_borders */); |
202 if (!iterator_) | 220 if (!iterator_) |
203 return; | 221 return; |
204 if (!GetFirstTileAndCheckIfValid(&iterator_)) | 222 if (!GetFirstTileAndCheckIfValid(&iterator_)) |
205 ++(*this); | 223 ++(*this); |
206 } | 224 } |
207 | 225 |
208 TilingSetRasterQueueAll::VisibleTilingIterator& | 226 TilingSetRasterQueueAll::VisibleTilingIterator& |
209 TilingSetRasterQueueAll::VisibleTilingIterator:: | 227 TilingSetRasterQueueAll::VisibleTilingIterator:: |
210 operator++() { | 228 operator++() { |
211 AdvanceToNextTile(&iterator_); | 229 AdvanceToNextTile(&iterator_); |
212 return *this; | 230 return *this; |
213 } | 231 } |
214 | 232 |
215 // PendingVisibleTilingIterator. | 233 // PendingVisibleTilingIterator. |
216 TilingSetRasterQueueAll::PendingVisibleTilingIterator:: | 234 TilingSetRasterQueueAll::PendingVisibleTilingIterator:: |
217 PendingVisibleTilingIterator(PictureLayerTiling* tiling, | 235 PendingVisibleTilingIterator(PictureLayerTiling* tiling, |
218 TilingData* tiling_data) | 236 TilingData* tiling_data) |
219 : OnePriorityRectIterator(tiling, tiling_data) { | 237 : OnePriorityRectIterator(tiling, |
220 iterator_ = TilingData::DifferenceIterator(tiling_data_, | 238 tiling_data, |
221 tiling_->pending_visible_rect(), | 239 PictureLayerTiling::PENDING_VISIBLE_RECT) { |
222 tiling_->current_visible_rect()); | 240 if (!pending_twin_tiling_ || !pending_twin_tiling_->has_visible_rect_tiles()) |
241 return; | |
242 iterator_ = TilingData::DifferenceIterator( | |
243 tiling_data_, pending_twin_tiling_->current_visible_rect(), | |
244 tiling_->current_visible_rect()); | |
223 if (!iterator_) | 245 if (!iterator_) |
224 return; | 246 return; |
225 if (!GetFirstTileAndCheckIfValid(&iterator_)) | 247 if (!GetFirstTileAndCheckIfValid(&iterator_)) |
226 ++(*this); | 248 ++(*this); |
227 } | 249 } |
228 | 250 |
229 TilingSetRasterQueueAll::PendingVisibleTilingIterator& | 251 TilingSetRasterQueueAll::PendingVisibleTilingIterator& |
230 TilingSetRasterQueueAll::PendingVisibleTilingIterator:: | 252 TilingSetRasterQueueAll::PendingVisibleTilingIterator:: |
231 operator++() { | 253 operator++() { |
232 AdvanceToNextTile(&iterator_); | 254 AdvanceToNextTile(&iterator_); |
233 return *this; | 255 return *this; |
234 } | 256 } |
235 | 257 |
236 // SkewportTilingIterator. | 258 // SkewportTilingIterator. |
237 TilingSetRasterQueueAll::SkewportTilingIterator::SkewportTilingIterator( | 259 TilingSetRasterQueueAll::SkewportTilingIterator::SkewportTilingIterator( |
238 PictureLayerTiling* tiling, | 260 PictureLayerTiling* tiling, |
239 TilingData* tiling_data) | 261 TilingData* tiling_data) |
240 : OnePriorityRectIterator(tiling, tiling_data), | 262 : OnePriorityRectIterator(tiling, |
241 pending_visible_rect_(tiling->pending_visible_rect()) { | 263 tiling_data, |
264 PictureLayerTiling::SKEWPORT_RECT) { | |
242 if (!tiling_->has_skewport_rect_tiles()) | 265 if (!tiling_->has_skewport_rect_tiles()) |
243 return; | 266 return; |
244 iterator_ = TilingData::SpiralDifferenceIterator( | 267 iterator_ = TilingData::SpiralDifferenceIterator( |
245 tiling_data_, tiling_->current_skewport_rect(), | 268 tiling_data_, tiling_->current_skewport_rect(), |
246 tiling_->current_visible_rect(), tiling_->current_visible_rect()); | 269 tiling_->current_visible_rect(), tiling_->current_visible_rect()); |
247 if (!iterator_) | 270 if (!iterator_) |
248 return; | 271 return; |
249 if (!GetFirstTileAndCheckIfValid(&iterator_)) { | 272 if (!GetFirstTileAndCheckIfValid(&iterator_)) |
250 ++(*this); | |
251 return; | |
252 } | |
253 if (tile_->content_rect().Intersects(pending_visible_rect_)) | |
254 ++(*this); | 273 ++(*this); |
255 } | 274 } |
256 | 275 |
257 TilingSetRasterQueueAll::SkewportTilingIterator& | 276 TilingSetRasterQueueAll::SkewportTilingIterator& |
258 TilingSetRasterQueueAll::SkewportTilingIterator:: | 277 TilingSetRasterQueueAll::SkewportTilingIterator:: |
259 operator++() { | 278 operator++() { |
260 AdvanceToNextTile(&iterator_); | 279 AdvanceToNextTile(&iterator_); |
261 while (!done()) { | |
262 if (!tile_->content_rect().Intersects(pending_visible_rect_)) | |
263 break; | |
264 AdvanceToNextTile(&iterator_); | |
265 } | |
266 return *this; | 280 return *this; |
267 } | 281 } |
268 | 282 |
269 // SoonBorderTilingIterator. | 283 // SoonBorderTilingIterator. |
270 TilingSetRasterQueueAll::SoonBorderTilingIterator::SoonBorderTilingIterator( | 284 TilingSetRasterQueueAll::SoonBorderTilingIterator::SoonBorderTilingIterator( |
271 PictureLayerTiling* tiling, | 285 PictureLayerTiling* tiling, |
272 TilingData* tiling_data) | 286 TilingData* tiling_data) |
273 : OnePriorityRectIterator(tiling, tiling_data), | 287 : OnePriorityRectIterator(tiling, |
274 pending_visible_rect_(tiling->pending_visible_rect()) { | 288 tiling_data, |
289 PictureLayerTiling::SOON_BORDER_RECT) { | |
275 if (!tiling_->has_soon_border_rect_tiles()) | 290 if (!tiling_->has_soon_border_rect_tiles()) |
276 return; | 291 return; |
277 iterator_ = TilingData::SpiralDifferenceIterator( | 292 iterator_ = TilingData::SpiralDifferenceIterator( |
278 tiling_data_, tiling_->current_soon_border_rect(), | 293 tiling_data_, tiling_->current_soon_border_rect(), |
279 tiling_->current_skewport_rect(), tiling_->current_visible_rect()); | 294 tiling_->current_skewport_rect(), tiling_->current_visible_rect()); |
280 if (!iterator_) | 295 if (!iterator_) |
281 return; | 296 return; |
282 if (!GetFirstTileAndCheckIfValid(&iterator_)) { | 297 if (!GetFirstTileAndCheckIfValid(&iterator_)) |
283 ++(*this); | |
284 return; | |
285 } | |
286 if (tile_->content_rect().Intersects(pending_visible_rect_)) | |
287 ++(*this); | 298 ++(*this); |
288 } | 299 } |
289 | 300 |
290 TilingSetRasterQueueAll::SoonBorderTilingIterator& | 301 TilingSetRasterQueueAll::SoonBorderTilingIterator& |
291 TilingSetRasterQueueAll::SoonBorderTilingIterator:: | 302 TilingSetRasterQueueAll::SoonBorderTilingIterator:: |
292 operator++() { | 303 operator++() { |
293 AdvanceToNextTile(&iterator_); | 304 AdvanceToNextTile(&iterator_); |
294 while (!done()) { | |
295 if (!tile_->content_rect().Intersects(pending_visible_rect_)) | |
296 break; | |
297 AdvanceToNextTile(&iterator_); | |
298 } | |
299 return *this; | 305 return *this; |
300 } | 306 } |
301 | 307 |
302 // EventuallyTilingIterator. | 308 // EventuallyTilingIterator. |
303 TilingSetRasterQueueAll::EventuallyTilingIterator::EventuallyTilingIterator( | 309 TilingSetRasterQueueAll::EventuallyTilingIterator::EventuallyTilingIterator( |
304 PictureLayerTiling* tiling, | 310 PictureLayerTiling* tiling, |
305 TilingData* tiling_data) | 311 TilingData* tiling_data) |
306 : OnePriorityRectIterator(tiling, tiling_data), | 312 : OnePriorityRectIterator(tiling, |
307 pending_visible_rect_(tiling->pending_visible_rect()) { | 313 tiling_data, |
314 PictureLayerTiling::EVENTUALLY_RECT) { | |
308 if (!tiling_->has_eventually_rect_tiles()) | 315 if (!tiling_->has_eventually_rect_tiles()) |
309 return; | 316 return; |
310 iterator_ = TilingData::SpiralDifferenceIterator( | 317 iterator_ = TilingData::SpiralDifferenceIterator( |
311 tiling_data_, tiling_->current_eventually_rect(), | 318 tiling_data_, tiling_->current_eventually_rect(), |
312 tiling_->current_skewport_rect(), tiling_->current_soon_border_rect()); | 319 tiling_->current_skewport_rect(), tiling_->current_soon_border_rect()); |
313 if (!iterator_) | 320 if (!iterator_) |
314 return; | 321 return; |
315 if (!GetFirstTileAndCheckIfValid(&iterator_)) { | 322 if (!GetFirstTileAndCheckIfValid(&iterator_)) |
316 ++(*this); | |
317 return; | |
318 } | |
319 if (tile_->content_rect().Intersects(pending_visible_rect_)) | |
vmpstr
2015/05/05 18:04:02
I see that this is less code, but can you maybe do
USE eero AT chromium.org
2015/05/06 12:05:20
Yes, of course.
| |
320 ++(*this); | 323 ++(*this); |
321 } | 324 } |
322 | 325 |
323 TilingSetRasterQueueAll::EventuallyTilingIterator& | 326 TilingSetRasterQueueAll::EventuallyTilingIterator& |
324 TilingSetRasterQueueAll::EventuallyTilingIterator:: | 327 TilingSetRasterQueueAll::EventuallyTilingIterator:: |
325 operator++() { | 328 operator++() { |
326 AdvanceToNextTile(&iterator_); | 329 AdvanceToNextTile(&iterator_); |
327 while (!done()) { | |
328 if (!tile_->content_rect().Intersects(pending_visible_rect_)) | |
329 break; | |
330 AdvanceToNextTile(&iterator_); | |
331 } | |
332 return *this; | 330 return *this; |
333 } | 331 } |
334 | 332 |
335 // TilingIterator | 333 // TilingIterator |
336 TilingSetRasterQueueAll::TilingIterator::TilingIterator() | 334 TilingSetRasterQueueAll::TilingIterator::TilingIterator() |
337 : tiling_(NULL), current_tile_(NULL) { | 335 : tiling_(NULL), current_tile_(NULL) { |
338 } | 336 } |
339 | 337 |
340 TilingSetRasterQueueAll::TilingIterator::TilingIterator( | 338 TilingSetRasterQueueAll::TilingIterator::TilingIterator( |
341 PictureLayerTiling* tiling, | 339 PictureLayerTiling* tiling, |
342 TilingData* tiling_data) | 340 TilingData* tiling_data) |
343 : tiling_(tiling), | 341 : tiling_(tiling), |
344 tiling_data_(tiling_data), | 342 tiling_data_(tiling_data), |
345 phase_(VISIBLE_RECT), | 343 phase_(Phase::VISIBLE_RECT), |
346 current_tile_(NULL) { | 344 current_tile_(NULL) { |
347 visible_iterator_ = VisibleTilingIterator(tiling_, tiling_data_); | 345 visible_iterator_ = VisibleTilingIterator(tiling_, tiling_data_); |
348 if (visible_iterator_.done()) { | 346 if (visible_iterator_.done()) { |
349 AdvancePhase(); | 347 AdvancePhase(); |
350 return; | 348 return; |
351 } | 349 } |
352 current_tile_ = *visible_iterator_; | 350 current_tile_ = *visible_iterator_; |
353 } | 351 } |
354 | 352 |
355 TilingSetRasterQueueAll::TilingIterator::~TilingIterator() { | 353 TilingSetRasterQueueAll::TilingIterator::~TilingIterator() { |
356 } | 354 } |
357 | 355 |
358 void TilingSetRasterQueueAll::TilingIterator::AdvancePhase() { | 356 void TilingSetRasterQueueAll::TilingIterator::AdvancePhase() { |
359 DCHECK_LT(phase_, EVENTUALLY_RECT); | 357 DCHECK_LT(phase_, Phase::EVENTUALLY_RECT); |
360 | 358 |
361 current_tile_ = nullptr; | 359 current_tile_ = nullptr; |
362 while (!current_tile_ && phase_ < EVENTUALLY_RECT) { | 360 while (!current_tile_ && phase_ < Phase::EVENTUALLY_RECT) { |
363 phase_ = static_cast<Phase>(phase_ + 1); | 361 phase_ = static_cast<Phase>(phase_ + 1); |
364 switch (phase_) { | 362 switch (phase_) { |
365 case VISIBLE_RECT: | 363 case Phase::VISIBLE_RECT: |
366 NOTREACHED(); | 364 NOTREACHED(); |
367 return; | 365 return; |
368 case PENDING_VISIBLE_RECT: | 366 case Phase::PENDING_VISIBLE_RECT: |
369 pending_visible_iterator_ = | 367 pending_visible_iterator_ = |
370 PendingVisibleTilingIterator(tiling_, tiling_data_); | 368 PendingVisibleTilingIterator(tiling_, tiling_data_); |
371 if (!pending_visible_iterator_.done()) | 369 if (!pending_visible_iterator_.done()) |
372 current_tile_ = *pending_visible_iterator_; | 370 current_tile_ = *pending_visible_iterator_; |
373 break; | 371 break; |
374 case SKEWPORT_RECT: | 372 case Phase::SKEWPORT_RECT: |
375 skewport_iterator_ = SkewportTilingIterator(tiling_, tiling_data_); | 373 skewport_iterator_ = SkewportTilingIterator(tiling_, tiling_data_); |
376 if (!skewport_iterator_.done()) | 374 if (!skewport_iterator_.done()) |
377 current_tile_ = *skewport_iterator_; | 375 current_tile_ = *skewport_iterator_; |
378 break; | 376 break; |
379 case SOON_BORDER_RECT: | 377 case Phase::SOON_BORDER_RECT: |
380 soon_border_iterator_ = SoonBorderTilingIterator(tiling_, tiling_data_); | 378 soon_border_iterator_ = SoonBorderTilingIterator(tiling_, tiling_data_); |
381 if (!soon_border_iterator_.done()) | 379 if (!soon_border_iterator_.done()) |
382 current_tile_ = *soon_border_iterator_; | 380 current_tile_ = *soon_border_iterator_; |
383 break; | 381 break; |
384 case EVENTUALLY_RECT: | 382 case Phase::EVENTUALLY_RECT: |
385 eventually_iterator_ = EventuallyTilingIterator(tiling_, tiling_data_); | 383 eventually_iterator_ = EventuallyTilingIterator(tiling_, tiling_data_); |
386 if (!eventually_iterator_.done()) | 384 if (!eventually_iterator_.done()) |
387 current_tile_ = *eventually_iterator_; | 385 current_tile_ = *eventually_iterator_; |
388 break; | 386 break; |
389 } | 387 } |
390 } | 388 } |
391 } | 389 } |
392 | 390 |
393 TilingSetRasterQueueAll::TilingIterator& | 391 TilingSetRasterQueueAll::TilingIterator& |
394 TilingSetRasterQueueAll::TilingIterator:: | 392 TilingSetRasterQueueAll::TilingIterator:: |
395 operator++() { | 393 operator++() { |
396 switch (phase_) { | 394 switch (phase_) { |
397 case VISIBLE_RECT: | 395 case Phase::VISIBLE_RECT: |
398 ++visible_iterator_; | 396 ++visible_iterator_; |
399 if (visible_iterator_.done()) { | 397 if (visible_iterator_.done()) { |
400 AdvancePhase(); | 398 AdvancePhase(); |
401 return *this; | 399 return *this; |
402 } | 400 } |
403 current_tile_ = *visible_iterator_; | 401 current_tile_ = *visible_iterator_; |
404 break; | 402 break; |
405 case PENDING_VISIBLE_RECT: | 403 case Phase::PENDING_VISIBLE_RECT: |
406 ++pending_visible_iterator_; | 404 ++pending_visible_iterator_; |
407 if (pending_visible_iterator_.done()) { | 405 if (pending_visible_iterator_.done()) { |
408 AdvancePhase(); | 406 AdvancePhase(); |
409 return *this; | 407 return *this; |
410 } | 408 } |
411 current_tile_ = *pending_visible_iterator_; | 409 current_tile_ = *pending_visible_iterator_; |
412 break; | 410 break; |
413 case SKEWPORT_RECT: | 411 case Phase::SKEWPORT_RECT: |
414 ++skewport_iterator_; | 412 ++skewport_iterator_; |
415 if (skewport_iterator_.done()) { | 413 if (skewport_iterator_.done()) { |
416 AdvancePhase(); | 414 AdvancePhase(); |
417 return *this; | 415 return *this; |
418 } | 416 } |
419 current_tile_ = *skewport_iterator_; | 417 current_tile_ = *skewport_iterator_; |
420 break; | 418 break; |
421 case SOON_BORDER_RECT: | 419 case Phase::SOON_BORDER_RECT: |
422 ++soon_border_iterator_; | 420 ++soon_border_iterator_; |
423 if (soon_border_iterator_.done()) { | 421 if (soon_border_iterator_.done()) { |
424 AdvancePhase(); | 422 AdvancePhase(); |
425 return *this; | 423 return *this; |
426 } | 424 } |
427 current_tile_ = *soon_border_iterator_; | 425 current_tile_ = *soon_border_iterator_; |
428 break; | 426 break; |
429 case EVENTUALLY_RECT: | 427 case Phase::EVENTUALLY_RECT: |
430 ++eventually_iterator_; | 428 ++eventually_iterator_; |
431 if (eventually_iterator_.done()) { | 429 if (eventually_iterator_.done()) { |
432 current_tile_ = nullptr; | 430 current_tile_ = nullptr; |
433 return *this; | 431 return *this; |
434 } | 432 } |
435 current_tile_ = *eventually_iterator_; | 433 current_tile_ = *eventually_iterator_; |
436 break; | 434 break; |
437 } | 435 } |
438 return *this; | 436 return *this; |
439 } | 437 } |
440 | 438 |
441 } // namespace cc | 439 } // namespace cc |
OLD | NEW |