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/tiles/tile_manager.h" | 5 #include "cc/tiles/tile_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
680 resource->size().ToString()); | 680 resource->size().ToString()); |
681 } else { | 681 } else { |
682 resource = resource_pool_->AcquireResource( | 682 resource = resource_pool_->AcquireResource( |
683 tile->desired_texture_size(), tile_task_runner_->GetResourceFormat()); | 683 tile->desired_texture_size(), tile_task_runner_->GetResourceFormat()); |
684 } | 684 } |
685 | 685 |
686 // Create and queue all image decode tasks that this tile depends on. | 686 // Create and queue all image decode tasks that this tile depends on. |
687 ImageDecodeTask::Vector decode_tasks; | 687 ImageDecodeTask::Vector decode_tasks; |
688 std::vector<skia::PositionPixelRef> pixel_refs; | 688 std::vector<skia::PositionPixelRef> pixel_refs; |
689 prioritized_tile.raster_source()->GatherPixelRefs( | 689 prioritized_tile.raster_source()->GatherPixelRefs( |
690 tile->content_rect(), tile->contents_scale(), &pixel_refs); | 690 tile->enclosing_layer_rect(), &pixel_refs); |
691 for (const skia::PositionPixelRef& pixel_ref : pixel_refs) { | 691 for (const skia::PositionPixelRef& pixel_ref : pixel_refs) { |
692 decode_tasks.push_back(image_decode_controller_.GetTaskForPixelRef( | 692 decode_tasks.push_back(image_decode_controller_.GetTaskForPixelRef( |
693 pixel_ref, tile->layer_id(), prepare_tiles_count_)); | 693 pixel_ref, tile->layer_id(), prepare_tiles_count_)); |
694 } | 694 } |
695 | 695 |
696 return make_scoped_refptr(new RasterTaskImpl( | 696 return make_scoped_refptr(new RasterTaskImpl( |
697 resource, prioritized_tile.raster_source(), tile->content_rect(), | 697 resource, prioritized_tile.raster_source(), tile->content_rect(), |
698 tile->invalidated_content_rect(), tile->contents_scale(), | 698 tile->invalidated_content_rect(), tile->contents_scale(), |
699 prioritized_tile.priority().resolution, tile->layer_id(), | 699 prioritized_tile.priority().resolution, tile->layer_id(), |
700 prepare_tiles_count_, static_cast<const void*>(tile), tile->id(), | 700 prepare_tiles_count_, static_cast<const void*>(tile), tile->id(), |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
747 draw_info.resource_ = resource; | 747 draw_info.resource_ = resource; |
748 draw_info.contents_swizzled_ = | 748 draw_info.contents_swizzled_ = |
749 tile_task_runner_->GetResourceRequiresSwizzle(); | 749 tile_task_runner_->GetResourceRequiresSwizzle(); |
750 } | 750 } |
751 DCHECK(draw_info.IsReadyToDraw()); | 751 DCHECK(draw_info.IsReadyToDraw()); |
752 draw_info.set_was_ever_ready_to_draw(); | 752 draw_info.set_was_ever_ready_to_draw(); |
753 | 753 |
754 client_->NotifyTileStateChanged(tile); | 754 client_->NotifyTileStateChanged(tile); |
755 } | 755 } |
756 | 756 |
757 ScopedTilePtr TileManager::CreateTile(const gfx::Size& desired_texture_size, | 757 ScopedTilePtr TileManager::CreateTile(const Tile::CreateInfo& info, |
758 const gfx::Rect& content_rect, | |
759 float contents_scale, | |
760 int layer_id, | 758 int layer_id, |
761 int source_frame_number, | 759 int source_frame_number, |
762 int flags) { | 760 int flags) { |
763 // We need to have a tile task worker pool to do anything meaningful with | 761 // We need to have a tile task worker pool to do anything meaningful with |
764 // tiles. | 762 // tiles. |
765 DCHECK(tile_task_runner_); | 763 DCHECK(tile_task_runner_); |
766 ScopedTilePtr tile(new Tile(this, desired_texture_size, content_rect, | 764 ScopedTilePtr tile( |
767 contents_scale, layer_id, source_frame_number, | 765 new Tile(this, info, layer_id, source_frame_number, flags)); |
768 flags)); | |
769 DCHECK(tiles_.find(tile->id()) == tiles_.end()); | 766 DCHECK(tiles_.find(tile->id()) == tiles_.end()); |
770 | 767 |
771 tiles_[tile->id()] = tile.get(); | 768 tiles_[tile->id()] = tile.get(); |
772 image_decode_controller_.AddLayerUsedCount(tile->layer_id()); | 769 image_decode_controller_.AddLayerUsedCount(tile->layer_id()); |
773 return tile; | 770 return tile; |
774 } | 771 } |
775 | 772 |
776 void TileManager::SetTileTaskRunnerForTesting( | 773 void TileManager::SetTileTaskRunnerForTesting( |
777 TileTaskRunner* tile_task_runner) { | 774 TileTaskRunner* tile_task_runner) { |
778 tile_task_runner_ = tile_task_runner; | 775 tile_task_runner_ = tile_task_runner; |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1000 void TileManager::Signals::reset() { | 997 void TileManager::Signals::reset() { |
1001 ready_to_activate = false; | 998 ready_to_activate = false; |
1002 did_notify_ready_to_activate = false; | 999 did_notify_ready_to_activate = false; |
1003 ready_to_draw = false; | 1000 ready_to_draw = false; |
1004 did_notify_ready_to_draw = false; | 1001 did_notify_ready_to_draw = false; |
1005 all_tile_tasks_completed = false; | 1002 all_tile_tasks_completed = false; |
1006 did_notify_all_tile_tasks_completed = false; | 1003 did_notify_all_tile_tasks_completed = false; |
1007 } | 1004 } |
1008 | 1005 |
1009 } // namespace cc | 1006 } // namespace cc |
OLD | NEW |