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

Side by Side Diff: cc/tiles/tiling_set_raster_queue_all.cc

Issue 2067213002: cc: Implement tile iteration order based on pyramid sequence. [old] Base URL: https://chromium.googlesource.com/chromium/src.git@tiling_data_fix
Patch Set: rebase -> used for smoothness tests Created 3 years, 10 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/tiles/tiling_set_raster_queue_all.h ('k') | cc/tiles/tiling_set_raster_queue_required.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 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/tiles/tiling_set_raster_queue_all.h" 5 #include "cc/tiles/tiling_set_raster_queue_all.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 TilingSetRasterQueueAll::SkewportTilingIterator::SkewportTilingIterator( 265 TilingSetRasterQueueAll::SkewportTilingIterator::SkewportTilingIterator(
266 PictureLayerTiling* tiling, 266 PictureLayerTiling* tiling,
267 TilingData* tiling_data) 267 TilingData* tiling_data)
268 : OnePriorityRectIterator(tiling, 268 : OnePriorityRectIterator(tiling,
269 tiling_data, 269 tiling_data,
270 PictureLayerTiling::SKEWPORT_RECT) { 270 PictureLayerTiling::SKEWPORT_RECT) {
271 if (!tiling_->has_skewport_rect_tiles()) 271 if (!tiling_->has_skewport_rect_tiles())
272 return; 272 return;
273 iterator_ = TilingData::SpiralDifferenceIterator( 273 iterator_ = TilingData::SpiralDifferenceIterator(
274 tiling_data_, tiling_->current_skewport_rect(), 274 tiling_data_, tiling_->current_skewport_rect(),
275 tiling_->current_visible_rect(), tiling_->current_visible_rect()); 275 tiling_->current_visible_rect(), tiling_->current_visible_rect(),
276 TilingData::IsPyramidSequenceEnabled());
276 if (!iterator_) 277 if (!iterator_)
277 return; 278 return;
278 if (!GetFirstTileAndCheckIfValid(&iterator_)) { 279 if (!GetFirstTileAndCheckIfValid(&iterator_)) {
279 ++(*this); 280 ++(*this);
280 return; 281 return;
281 } 282 }
282 } 283 }
283 284
284 TilingSetRasterQueueAll::SkewportTilingIterator& 285 TilingSetRasterQueueAll::SkewportTilingIterator&
285 TilingSetRasterQueueAll::SkewportTilingIterator:: 286 TilingSetRasterQueueAll::SkewportTilingIterator::
286 operator++() { 287 operator++() {
287 AdvanceToNextTile(&iterator_); 288 AdvanceToNextTile(&iterator_);
288 return *this; 289 return *this;
289 } 290 }
290 291
291 // SoonBorderTilingIterator. 292 // SoonBorderTilingIterator.
292 TilingSetRasterQueueAll::SoonBorderTilingIterator::SoonBorderTilingIterator( 293 TilingSetRasterQueueAll::SoonBorderTilingIterator::SoonBorderTilingIterator(
293 PictureLayerTiling* tiling, 294 PictureLayerTiling* tiling,
294 TilingData* tiling_data) 295 TilingData* tiling_data)
295 : OnePriorityRectIterator(tiling, 296 : OnePriorityRectIterator(tiling,
296 tiling_data, 297 tiling_data,
297 PictureLayerTiling::SOON_BORDER_RECT) { 298 PictureLayerTiling::SOON_BORDER_RECT) {
298 if (!tiling_->has_soon_border_rect_tiles()) 299 if (!tiling_->has_soon_border_rect_tiles())
299 return; 300 return;
300 iterator_ = TilingData::SpiralDifferenceIterator( 301 iterator_ = TilingData::SpiralDifferenceIterator(
301 tiling_data_, tiling_->current_soon_border_rect(), 302 tiling_data_, tiling_->current_soon_border_rect(),
302 tiling_->current_skewport_rect(), tiling_->current_visible_rect()); 303 tiling_->current_skewport_rect(), tiling_->current_visible_rect(),
304 TilingData::IsPyramidSequenceEnabled());
303 if (!iterator_) 305 if (!iterator_)
304 return; 306 return;
305 if (!GetFirstTileAndCheckIfValid(&iterator_)) { 307 if (!GetFirstTileAndCheckIfValid(&iterator_)) {
306 ++(*this); 308 ++(*this);
307 return; 309 return;
308 } 310 }
309 } 311 }
310 312
311 TilingSetRasterQueueAll::SoonBorderTilingIterator& 313 TilingSetRasterQueueAll::SoonBorderTilingIterator&
312 TilingSetRasterQueueAll::SoonBorderTilingIterator:: 314 TilingSetRasterQueueAll::SoonBorderTilingIterator::
313 operator++() { 315 operator++() {
314 AdvanceToNextTile(&iterator_); 316 AdvanceToNextTile(&iterator_);
315 return *this; 317 return *this;
316 } 318 }
317 319
318 // EventuallyTilingIterator. 320 // EventuallyTilingIterator.
319 TilingSetRasterQueueAll::EventuallyTilingIterator::EventuallyTilingIterator( 321 TilingSetRasterQueueAll::EventuallyTilingIterator::EventuallyTilingIterator(
320 PictureLayerTiling* tiling, 322 PictureLayerTiling* tiling,
321 TilingData* tiling_data) 323 TilingData* tiling_data)
322 : OnePriorityRectIterator(tiling, 324 : OnePriorityRectIterator(tiling,
323 tiling_data, 325 tiling_data,
324 PictureLayerTiling::EVENTUALLY_RECT) { 326 PictureLayerTiling::EVENTUALLY_RECT) {
325 if (!tiling_->has_eventually_rect_tiles()) 327 if (!tiling_->has_eventually_rect_tiles())
326 return; 328 return;
327 iterator_ = TilingData::SpiralDifferenceIterator( 329 iterator_ = TilingData::SpiralDifferenceIterator(
328 tiling_data_, tiling_->current_eventually_rect(), 330 tiling_data_, tiling_->current_eventually_rect(),
329 tiling_->current_skewport_rect(), tiling_->current_soon_border_rect()); 331 tiling_->current_skewport_rect(), tiling_->current_soon_border_rect(),
332 TilingData::IsPyramidSequenceEnabled());
330 if (!iterator_) 333 if (!iterator_)
331 return; 334 return;
332 if (!GetFirstTileAndCheckIfValid(&iterator_)) { 335 if (!GetFirstTileAndCheckIfValid(&iterator_)) {
333 ++(*this); 336 ++(*this);
334 return; 337 return;
335 } 338 }
336 } 339 }
337 340
338 TilingSetRasterQueueAll::EventuallyTilingIterator& 341 TilingSetRasterQueueAll::EventuallyTilingIterator&
339 TilingSetRasterQueueAll::EventuallyTilingIterator:: 342 TilingSetRasterQueueAll::EventuallyTilingIterator::
(...skipping 11 matching lines...) Expand all
351 TilingData* tiling_data) 354 TilingData* tiling_data)
352 : tiling_(tiling), tiling_data_(tiling_data), phase_(Phase::VISIBLE_RECT) { 355 : tiling_(tiling), tiling_data_(tiling_data), phase_(Phase::VISIBLE_RECT) {
353 visible_iterator_ = VisibleTilingIterator(tiling_, tiling_data_); 356 visible_iterator_ = VisibleTilingIterator(tiling_, tiling_data_);
354 if (visible_iterator_.done()) { 357 if (visible_iterator_.done()) {
355 AdvancePhase(); 358 AdvancePhase();
356 return; 359 return;
357 } 360 }
358 current_tile_ = *visible_iterator_; 361 current_tile_ = *visible_iterator_;
359 } 362 }
360 363
364 TilingSetRasterQueueAll::TilingIterator::TilingIterator(
365 const TilingSetRasterQueueAll::TilingIterator& other) = default;
366
367 TilingSetRasterQueueAll::TilingIterator::TilingIterator(
368 TilingSetRasterQueueAll::TilingIterator&& other) = default;
369
361 TilingSetRasterQueueAll::TilingIterator::~TilingIterator() { 370 TilingSetRasterQueueAll::TilingIterator::~TilingIterator() {
362 } 371 }
363 372
373 TilingSetRasterQueueAll::TilingIterator&
374 TilingSetRasterQueueAll::TilingIterator::operator=(
375 const TilingSetRasterQueueAll::TilingIterator& other) = default;
376
377 TilingSetRasterQueueAll::TilingIterator&
378 TilingSetRasterQueueAll::TilingIterator::operator=(
379 TilingSetRasterQueueAll::TilingIterator&& other) = default;
380
364 void TilingSetRasterQueueAll::TilingIterator::AdvancePhase() { 381 void TilingSetRasterQueueAll::TilingIterator::AdvancePhase() {
365 DCHECK_LT(phase_, Phase::EVENTUALLY_RECT); 382 DCHECK_LT(phase_, Phase::EVENTUALLY_RECT);
366 383
367 current_tile_ = PrioritizedTile(); 384 current_tile_ = PrioritizedTile();
368 while (!current_tile_.tile() && phase_ < Phase::EVENTUALLY_RECT) { 385 while (!current_tile_.tile() && phase_ < Phase::EVENTUALLY_RECT) {
369 phase_ = static_cast<Phase>(phase_ + 1); 386 phase_ = static_cast<Phase>(phase_ + 1);
370 switch (phase_) { 387 switch (phase_) {
371 case Phase::VISIBLE_RECT: 388 case Phase::VISIBLE_RECT:
372 NOTREACHED(); 389 NOTREACHED();
373 return; 390 return;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 current_tile_ = PrioritizedTile(); 455 current_tile_ = PrioritizedTile();
439 return *this; 456 return *this;
440 } 457 }
441 current_tile_ = *eventually_iterator_; 458 current_tile_ = *eventually_iterator_;
442 break; 459 break;
443 } 460 }
444 return *this; 461 return *this;
445 } 462 }
446 463
447 } // namespace cc 464 } // namespace cc
OLDNEW
« no previous file with comments | « cc/tiles/tiling_set_raster_queue_all.h ('k') | cc/tiles/tiling_set_raster_queue_required.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698