Chromium Code Reviews| 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 |