| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/trees/layer_tree_host_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 #include "cc/layers/scrollbar_layer_impl_base.h" | 38 #include "cc/layers/scrollbar_layer_impl_base.h" |
| 39 #include "cc/output/compositor_frame_metadata.h" | 39 #include "cc/output/compositor_frame_metadata.h" |
| 40 #include "cc/output/copy_output_request.h" | 40 #include "cc/output/copy_output_request.h" |
| 41 #include "cc/output/delegating_renderer.h" | 41 #include "cc/output/delegating_renderer.h" |
| 42 #include "cc/output/gl_renderer.h" | 42 #include "cc/output/gl_renderer.h" |
| 43 #include "cc/output/software_renderer.h" | 43 #include "cc/output/software_renderer.h" |
| 44 #include "cc/quads/render_pass_draw_quad.h" | 44 #include "cc/quads/render_pass_draw_quad.h" |
| 45 #include "cc/quads/shared_quad_state.h" | 45 #include "cc/quads/shared_quad_state.h" |
| 46 #include "cc/quads/solid_color_draw_quad.h" | 46 #include "cc/quads/solid_color_draw_quad.h" |
| 47 #include "cc/quads/texture_draw_quad.h" | 47 #include "cc/quads/texture_draw_quad.h" |
| 48 #include "cc/resources/eviction_tile_priority_queue.h" |
| 48 #include "cc/resources/gpu_raster_worker_pool.h" | 49 #include "cc/resources/gpu_raster_worker_pool.h" |
| 49 #include "cc/resources/image_copy_raster_worker_pool.h" | 50 #include "cc/resources/image_copy_raster_worker_pool.h" |
| 50 #include "cc/resources/image_raster_worker_pool.h" | 51 #include "cc/resources/image_raster_worker_pool.h" |
| 51 #include "cc/resources/memory_history.h" | 52 #include "cc/resources/memory_history.h" |
| 52 #include "cc/resources/picture_layer_tiling.h" | 53 #include "cc/resources/picture_layer_tiling.h" |
| 53 #include "cc/resources/pixel_buffer_raster_worker_pool.h" | 54 #include "cc/resources/pixel_buffer_raster_worker_pool.h" |
| 54 #include "cc/resources/prioritized_resource_manager.h" | 55 #include "cc/resources/prioritized_resource_manager.h" |
| 56 #include "cc/resources/raster_tile_priority_queue.h" |
| 55 #include "cc/resources/raster_worker_pool.h" | 57 #include "cc/resources/raster_worker_pool.h" |
| 56 #include "cc/resources/resource_pool.h" | 58 #include "cc/resources/resource_pool.h" |
| 57 #include "cc/resources/texture_mailbox_deleter.h" | 59 #include "cc/resources/texture_mailbox_deleter.h" |
| 58 #include "cc/resources/ui_resource_bitmap.h" | 60 #include "cc/resources/ui_resource_bitmap.h" |
| 59 #include "cc/scheduler/delay_based_time_source.h" | 61 #include "cc/scheduler/delay_based_time_source.h" |
| 60 #include "cc/trees/damage_tracker.h" | 62 #include "cc/trees/damage_tracker.h" |
| 61 #include "cc/trees/layer_tree_host.h" | 63 #include "cc/trees/layer_tree_host.h" |
| 62 #include "cc/trees/layer_tree_host_common.h" | 64 #include "cc/trees/layer_tree_host_common.h" |
| 63 #include "cc/trees/layer_tree_impl.h" | 65 #include "cc/trees/layer_tree_impl.h" |
| 64 #include "cc/trees/occlusion_tracker.h" | 66 #include "cc/trees/occlusion_tracker.h" |
| (...skipping 1191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1256 // Mark priorities as dirty and schedule a ManageTiles(). | 1258 // Mark priorities as dirty and schedule a ManageTiles(). |
| 1257 tile_priorities_dirty_ = true; | 1259 tile_priorities_dirty_ = true; |
| 1258 client_->SetNeedsManageTilesOnImplThread(); | 1260 client_->SetNeedsManageTilesOnImplThread(); |
| 1259 } | 1261 } |
| 1260 | 1262 |
| 1261 void LayerTreeHostImpl::DidInitializeVisibleTile() { | 1263 void LayerTreeHostImpl::DidInitializeVisibleTile() { |
| 1262 if (client_ && !client_->IsInsideDraw()) | 1264 if (client_ && !client_->IsInsideDraw()) |
| 1263 client_->DidInitializeVisibleTileOnImplThread(); | 1265 client_->DidInitializeVisibleTileOnImplThread(); |
| 1264 } | 1266 } |
| 1265 | 1267 |
| 1266 const std::vector<PictureLayerImpl*>& LayerTreeHostImpl::GetPictureLayers() { | 1268 const std::vector<PictureLayerImpl*>& LayerTreeHostImpl::GetPictureLayers() |
| 1269 const { |
| 1267 return picture_layers_; | 1270 return picture_layers_; |
| 1268 } | 1271 } |
| 1269 | 1272 |
| 1270 void LayerTreeHostImpl::NotifyReadyToActivate() { | 1273 void LayerTreeHostImpl::NotifyReadyToActivate() { |
| 1271 client_->NotifyReadyToActivate(); | 1274 client_->NotifyReadyToActivate(); |
| 1272 } | 1275 } |
| 1273 | 1276 |
| 1274 void LayerTreeHostImpl::NotifyTileStateChanged(const Tile* tile) { | 1277 void LayerTreeHostImpl::NotifyTileStateChanged(const Tile* tile) { |
| 1275 TRACE_EVENT0("cc", "LayerTreeHostImpl::NotifyTileStateChanged"); | 1278 TRACE_EVENT0("cc", "LayerTreeHostImpl::NotifyTileStateChanged"); |
| 1276 | 1279 |
| 1277 if (active_tree_) { | 1280 if (active_tree_) { |
| 1278 LayerImpl* layer_impl = | 1281 LayerImpl* layer_impl = |
| 1279 active_tree_->FindActiveTreeLayerById(tile->layer_id()); | 1282 active_tree_->FindActiveTreeLayerById(tile->layer_id()); |
| 1280 if (layer_impl) | 1283 if (layer_impl) |
| 1281 layer_impl->NotifyTileStateChanged(tile); | 1284 layer_impl->NotifyTileStateChanged(tile); |
| 1282 } | 1285 } |
| 1283 | 1286 |
| 1284 if (pending_tree_) { | 1287 if (pending_tree_) { |
| 1285 LayerImpl* layer_impl = | 1288 LayerImpl* layer_impl = |
| 1286 pending_tree_->FindPendingTreeLayerById(tile->layer_id()); | 1289 pending_tree_->FindPendingTreeLayerById(tile->layer_id()); |
| 1287 if (layer_impl) | 1290 if (layer_impl) |
| 1288 layer_impl->NotifyTileStateChanged(tile); | 1291 layer_impl->NotifyTileStateChanged(tile); |
| 1289 } | 1292 } |
| 1290 } | 1293 } |
| 1291 | 1294 |
| 1295 void LayerTreeHostImpl::BuildRasterQueue(RasterTilePriorityQueue* queue, |
| 1296 TreePriority tree_priority) { |
| 1297 queue->BuildQueue(picture_layers_, tree_priority); |
| 1298 } |
| 1299 |
| 1300 void LayerTreeHostImpl::BuildEvictionQueue(EvictionTilePriorityQueue* queue, |
| 1301 TreePriority tree_priority) { |
| 1302 queue->BuildQueue(picture_layers_, tree_priority); |
| 1303 } |
| 1304 |
| 1292 void LayerTreeHostImpl::SetMemoryPolicy(const ManagedMemoryPolicy& policy) { | 1305 void LayerTreeHostImpl::SetMemoryPolicy(const ManagedMemoryPolicy& policy) { |
| 1293 SetManagedMemoryPolicy(policy, zero_budget_); | 1306 SetManagedMemoryPolicy(policy, zero_budget_); |
| 1294 } | 1307 } |
| 1295 | 1308 |
| 1296 void LayerTreeHostImpl::SetTreeActivationCallback( | 1309 void LayerTreeHostImpl::SetTreeActivationCallback( |
| 1297 const base::Closure& callback) { | 1310 const base::Closure& callback) { |
| 1298 DCHECK(proxy_->IsImplThread()); | 1311 DCHECK(proxy_->IsImplThread()); |
| 1299 DCHECK(settings_.impl_side_painting || callback.is_null()); | 1312 DCHECK(settings_.impl_side_painting || callback.is_null()); |
| 1300 tree_activation_callback_ = callback; | 1313 tree_activation_callback_ = callback; |
| 1301 } | 1314 } |
| (...skipping 1963 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3265 } | 3278 } |
| 3266 | 3279 |
| 3267 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { | 3280 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { |
| 3268 std::vector<PictureLayerImpl*>::iterator it = | 3281 std::vector<PictureLayerImpl*>::iterator it = |
| 3269 std::find(picture_layers_.begin(), picture_layers_.end(), layer); | 3282 std::find(picture_layers_.begin(), picture_layers_.end(), layer); |
| 3270 DCHECK(it != picture_layers_.end()); | 3283 DCHECK(it != picture_layers_.end()); |
| 3271 picture_layers_.erase(it); | 3284 picture_layers_.erase(it); |
| 3272 } | 3285 } |
| 3273 | 3286 |
| 3274 } // namespace cc | 3287 } // namespace cc |
| OLD | NEW |