| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 869 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 880 } | 880 } |
| 881 | 881 |
| 882 const std::vector<PrioritizedTile>& tiles_to_process_for_images = | 882 const std::vector<PrioritizedTile>& tiles_to_process_for_images = |
| 883 work_to_schedule.tiles_to_process_for_images; | 883 work_to_schedule.tiles_to_process_for_images; |
| 884 std::vector<DrawImage> new_locked_images; | 884 std::vector<DrawImage> new_locked_images; |
| 885 for (const PrioritizedTile& prioritized_tile : tiles_to_process_for_images) { | 885 for (const PrioritizedTile& prioritized_tile : tiles_to_process_for_images) { |
| 886 Tile* tile = prioritized_tile.tile(); | 886 Tile* tile = prioritized_tile.tile(); |
| 887 | 887 |
| 888 std::vector<DrawImage> images; | 888 std::vector<DrawImage> images; |
| 889 prioritized_tile.raster_source()->GetDiscardableImagesInRect( | 889 prioritized_tile.raster_source()->GetDiscardableImagesInRect( |
| 890 tile->enclosing_layer_rect(), tile->raster_transform().scale(), &images)
; | 890 tile->enclosing_layer_rect(), tile->raster_transform().scale(), |
| 891 &images); |
| 891 new_locked_images.insert(new_locked_images.end(), images.begin(), | 892 new_locked_images.insert(new_locked_images.end(), images.begin(), |
| 892 images.end()); | 893 images.end()); |
| 893 } | 894 } |
| 894 | 895 |
| 895 // TODO(vmpstr): SOON is misleading here, but these images can come from | 896 // TODO(vmpstr): SOON is misleading here, but these images can come from |
| 896 // several diffent tiles. Rethink what we actually want to trace here. Note | 897 // several diffent tiles. Rethink what we actually want to trace here. Note |
| 897 // that I'm using SOON, since it can't be NOW (these are prepaint). | 898 // that I'm using SOON, since it can't be NOW (these are prepaint). |
| 898 ImageDecodeCache::TracingInfo tracing_info(prepare_tiles_count_, | 899 ImageDecodeCache::TracingInfo tracing_info(prepare_tiles_count_, |
| 899 TilePriority::SOON); | 900 TilePriority::SOON); |
| 900 std::vector<scoped_refptr<TileTask>> new_locked_image_tasks = | 901 std::vector<scoped_refptr<TileTask>> new_locked_image_tasks = |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 983 RasterSource::PlaybackSettings playback_settings; | 984 RasterSource::PlaybackSettings playback_settings; |
| 984 playback_settings.skip_images = | 985 playback_settings.skip_images = |
| 985 prioritized_tile.priority().resolution == LOW_RESOLUTION; | 986 prioritized_tile.priority().resolution == LOW_RESOLUTION; |
| 986 | 987 |
| 987 // Create and queue all image decode tasks that this tile depends on. | 988 // Create and queue all image decode tasks that this tile depends on. |
| 988 TileTask::Vector decode_tasks; | 989 TileTask::Vector decode_tasks; |
| 989 std::vector<DrawImage>& images = scheduled_draw_images_[tile->id()]; | 990 std::vector<DrawImage>& images = scheduled_draw_images_[tile->id()]; |
| 990 images.clear(); | 991 images.clear(); |
| 991 if (!playback_settings.skip_images) { | 992 if (!playback_settings.skip_images) { |
| 992 prioritized_tile.raster_source()->GetDiscardableImagesInRect( | 993 prioritized_tile.raster_source()->GetDiscardableImagesInRect( |
| 993 tile->enclosing_layer_rect(), tile->raster_transform().scale(), &images)
; | 994 tile->enclosing_layer_rect(), tile->raster_transform().scale(), |
| 995 &images); |
| 994 } | 996 } |
| 995 | 997 |
| 996 // We can skip the image hijack canvas if we have no images. | 998 // We can skip the image hijack canvas if we have no images. |
| 997 playback_settings.use_image_hijack_canvas = !images.empty(); | 999 playback_settings.use_image_hijack_canvas = !images.empty(); |
| 998 | 1000 |
| 999 // Get the tasks for the required images. | 1001 // Get the tasks for the required images. |
| 1000 ImageDecodeCache::TracingInfo tracing_info( | 1002 ImageDecodeCache::TracingInfo tracing_info( |
| 1001 prepare_tiles_count_, prioritized_tile.priority().priority_bin); | 1003 prepare_tiles_count_, prioritized_tile.priority().priority_bin); |
| 1002 image_manager_.GetTasksForImagesAndRef(&images, &decode_tasks, tracing_info); | 1004 image_manager_.GetTasksForImagesAndRef(&images, &decode_tasks, tracing_info); |
| 1003 | 1005 |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1343 all_tile_tasks_completed = false; | 1345 all_tile_tasks_completed = false; |
| 1344 did_notify_all_tile_tasks_completed = false; | 1346 did_notify_all_tile_tasks_completed = false; |
| 1345 } | 1347 } |
| 1346 | 1348 |
| 1347 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule() = default; | 1349 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule() = default; |
| 1348 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule( | 1350 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule( |
| 1349 PrioritizedWorkToSchedule&& other) = default; | 1351 PrioritizedWorkToSchedule&& other) = default; |
| 1350 TileManager::PrioritizedWorkToSchedule::~PrioritizedWorkToSchedule() = default; | 1352 TileManager::PrioritizedWorkToSchedule::~PrioritizedWorkToSchedule() = default; |
| 1351 | 1353 |
| 1352 } // namespace cc | 1354 } // namespace cc |
| OLD | NEW |