| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/picture_layer_tiling.h" | 5 #include "cc/resources/picture_layer_tiling.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <limits> | 9 #include <limits> |
| 10 | 10 |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 474 DCHECK(eventually_rect.IsEmpty() || | 474 DCHECK(eventually_rect.IsEmpty() || |
| 475 gfx::Rect(tiling_size()).Contains(eventually_rect)) | 475 gfx::Rect(tiling_size()).Contains(eventually_rect)) |
| 476 << "tiling_size: " << tiling_size().ToString() | 476 << "tiling_size: " << tiling_size().ToString() |
| 477 << " eventually_rect: " << eventually_rect.ToString(); | 477 << " eventually_rect: " << eventually_rect.ToString(); |
| 478 | 478 |
| 479 SetLiveTilesRect(eventually_rect); | 479 SetLiveTilesRect(eventually_rect); |
| 480 | 480 |
| 481 last_impl_frame_time_in_seconds_ = current_frame_time_in_seconds; | 481 last_impl_frame_time_in_seconds_ = current_frame_time_in_seconds; |
| 482 last_visible_rect_in_content_space_ = visible_rect_in_content_space; | 482 last_visible_rect_in_content_space_ = visible_rect_in_content_space; |
| 483 | 483 |
| 484 current_visible_rect_in_content_space_ = visible_rect_in_content_space; | |
| 485 current_skewport_ = skewport; | |
| 486 current_eventually_rect_ = eventually_rect; | |
| 487 eviction_tiles_cache_valid_ = false; | 484 eviction_tiles_cache_valid_ = false; |
| 488 | 485 |
| 489 TilePriority now_priority(resolution_, TilePriority::NOW, 0); | 486 TilePriority now_priority(resolution_, TilePriority::NOW, 0); |
| 490 float content_to_screen_scale = | 487 float content_to_screen_scale = |
| 491 1.0f / (contents_scale_ * ideal_contents_scale); | 488 1.0f / (contents_scale_ * ideal_contents_scale); |
| 492 | 489 |
| 493 // Assign now priority to all visible tiles. | 490 // Assign now priority to all visible tiles. |
| 494 bool include_borders = true; | 491 bool include_borders = true; |
| 495 for (TilingData::Iterator iter( | 492 for (TilingData::Iterator iter( |
| 496 &tiling_data_, visible_rect_in_content_space, include_borders); | 493 &tiling_data_, visible_rect_in_content_space, include_borders); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 553 | 550 |
| 554 float distance_to_visible = | 551 float distance_to_visible = |
| 555 visible_rect_in_content_space.ManhattanInternalDistance(tile_bounds) * | 552 visible_rect_in_content_space.ManhattanInternalDistance(tile_bounds) * |
| 556 content_to_screen_scale; | 553 content_to_screen_scale; |
| 557 TilePriority priority( | 554 TilePriority priority( |
| 558 resolution_, TilePriority::EVENTUALLY, distance_to_visible); | 555 resolution_, TilePriority::EVENTUALLY, distance_to_visible); |
| 559 tile->SetPriority(tree, priority); | 556 tile->SetPriority(tree, priority); |
| 560 } | 557 } |
| 561 | 558 |
| 562 // Upgrade the priority on border tiles to be SOON. | 559 // Upgrade the priority on border tiles to be SOON. |
| 563 current_soon_border_rect_ = visible_rect_in_content_space; | 560 gfx::Rect soon_border_rect = visible_rect_in_content_space; |
| 564 float border = kSoonBorderDistanceInScreenPixels / content_to_screen_scale; | 561 float border = kSoonBorderDistanceInScreenPixels / content_to_screen_scale; |
| 565 current_soon_border_rect_.Inset(-border, -border, -border, -border); | 562 soon_border_rect.Inset(-border, -border, -border, -border); |
| 566 for (TilingData::DifferenceIterator iter( | 563 for (TilingData::DifferenceIterator iter( |
| 567 &tiling_data_, current_soon_border_rect_, skewport); | 564 &tiling_data_, soon_border_rect, skewport); |
| 568 iter; | 565 iter; |
| 569 ++iter) { | 566 ++iter) { |
| 570 TileMap::iterator find = tiles_.find(iter.index()); | 567 TileMap::iterator find = tiles_.find(iter.index()); |
| 571 if (find == tiles_.end()) | 568 if (find == tiles_.end()) |
| 572 continue; | 569 continue; |
| 573 Tile* tile = find->second.get(); | 570 Tile* tile = find->second.get(); |
| 574 | 571 |
| 575 TilePriority priority(resolution_, | 572 TilePriority priority(resolution_, |
| 576 TilePriority::SOON, | 573 TilePriority::SOON, |
| 577 tile->priority(tree).distance_to_visible); | 574 tile->priority(tree).distance_to_visible); |
| 578 tile->SetPriority(tree, priority); | 575 tile->SetPriority(tree, priority); |
| 579 } | 576 } |
| 577 |
| 578 // Update iteration rects. |
| 579 current_visible_rect_ = visible_rect_in_content_space; |
| 580 current_skewport_rect_ = skewport; |
| 581 current_soon_border_rect_ = soon_border_rect; |
| 582 current_eventually_rect_ = eventually_rect; |
| 580 } | 583 } |
| 581 | 584 |
| 582 void PictureLayerTiling::SetLiveTilesRect( | 585 void PictureLayerTiling::SetLiveTilesRect( |
| 583 const gfx::Rect& new_live_tiles_rect) { | 586 const gfx::Rect& new_live_tiles_rect) { |
| 584 DCHECK(new_live_tiles_rect.IsEmpty() || | 587 DCHECK(new_live_tiles_rect.IsEmpty() || |
| 585 gfx::Rect(tiling_size()).Contains(new_live_tiles_rect)) | 588 gfx::Rect(tiling_size()).Contains(new_live_tiles_rect)) |
| 586 << "tiling_size: " << tiling_size().ToString() | 589 << "tiling_size: " << tiling_size().ToString() |
| 587 << " new_live_tiles_rect: " << new_live_tiles_rect.ToString(); | 590 << " new_live_tiles_rect: " << new_live_tiles_rect.ToString(); |
| 588 if (live_tiles_rect_ == new_live_tiles_rect) | 591 if (live_tiles_rect_ == new_live_tiles_rect) |
| 589 return; | 592 return; |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 831 } | 834 } |
| 832 | 835 |
| 833 PictureLayerTiling::TilingRasterTileIterator::TilingRasterTileIterator() | 836 PictureLayerTiling::TilingRasterTileIterator::TilingRasterTileIterator() |
| 834 : tiling_(NULL), current_tile_(NULL) {} | 837 : tiling_(NULL), current_tile_(NULL) {} |
| 835 | 838 |
| 836 PictureLayerTiling::TilingRasterTileIterator::TilingRasterTileIterator( | 839 PictureLayerTiling::TilingRasterTileIterator::TilingRasterTileIterator( |
| 837 PictureLayerTiling* tiling, | 840 PictureLayerTiling* tiling, |
| 838 WhichTree tree) | 841 WhichTree tree) |
| 839 : tiling_(tiling), | 842 : tiling_(tiling), |
| 840 type_(TilePriority::NOW), | 843 type_(TilePriority::NOW), |
| 841 visible_rect_in_content_space_( | 844 visible_rect_in_content_space_(tiling_->current_visible_rect_), |
| 842 tiling_->current_visible_rect_in_content_space_), | 845 skewport_in_content_space_(tiling_->current_skewport_rect_), |
| 843 skewport_in_content_space_(tiling_->current_skewport_), | |
| 844 eventually_rect_in_content_space_(tiling_->current_eventually_rect_), | 846 eventually_rect_in_content_space_(tiling_->current_eventually_rect_), |
| 845 soon_border_rect_in_content_space_(tiling_->current_soon_border_rect_), | 847 soon_border_rect_in_content_space_(tiling_->current_soon_border_rect_), |
| 846 tree_(tree), | 848 tree_(tree), |
| 847 current_tile_(NULL), | 849 current_tile_(NULL), |
| 848 visible_iterator_(&tiling->tiling_data_, | 850 visible_iterator_(&tiling->tiling_data_, |
| 849 visible_rect_in_content_space_, | 851 visible_rect_in_content_space_, |
| 850 true /* include_borders */), | 852 true /* include_borders */), |
| 851 spiral_iterator_(&tiling->tiling_data_, | 853 spiral_iterator_(&tiling->tiling_data_, |
| 852 skewport_in_content_space_, | 854 skewport_in_content_space_, |
| 853 visible_rect_in_content_space_, | 855 visible_rect_in_content_space_, |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 979 DCHECK(*this); | 981 DCHECK(*this); |
| 980 do { | 982 do { |
| 981 ++tile_iterator_; | 983 ++tile_iterator_; |
| 982 } while (tile_iterator_ != tiling_->eviction_tiles_cache_.end() && | 984 } while (tile_iterator_ != tiling_->eviction_tiles_cache_.end() && |
| 983 (!(*tile_iterator_)->HasResources())); | 985 (!(*tile_iterator_)->HasResources())); |
| 984 | 986 |
| 985 return *this; | 987 return *this; |
| 986 } | 988 } |
| 987 | 989 |
| 988 } // namespace cc | 990 } // namespace cc |
| OLD | NEW |