| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 2315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2326 tile_manager_.FinishTasksAndCleanUp(); | 2326 tile_manager_.FinishTasksAndCleanUp(); |
| 2327 resource_pool_ = nullptr; | 2327 resource_pool_ = nullptr; |
| 2328 tile_task_manager_ = nullptr; | 2328 tile_task_manager_ = nullptr; |
| 2329 single_thread_synchronous_task_graph_runner_ = nullptr; | 2329 single_thread_synchronous_task_graph_runner_ = nullptr; |
| 2330 image_decode_controller_ = nullptr; | 2330 image_decode_controller_ = nullptr; |
| 2331 } | 2331 } |
| 2332 | 2332 |
| 2333 void LayerTreeHostImpl::ReleaseOutputSurface() { | 2333 void LayerTreeHostImpl::ReleaseOutputSurface() { |
| 2334 TRACE_EVENT0("cc", "LayerTreeHostImpl::ReleaseOutputSurface"); | 2334 TRACE_EVENT0("cc", "LayerTreeHostImpl::ReleaseOutputSurface"); |
| 2335 | 2335 |
| 2336 if (!output_surface_) |
| 2337 return; |
| 2338 |
| 2336 // Since we will create a new resource provider, we cannot continue to use | 2339 // Since we will create a new resource provider, we cannot continue to use |
| 2337 // the old resources (i.e. render_surfaces and texture IDs). Clear them | 2340 // the old resources (i.e. render_surfaces and texture IDs). Clear them |
| 2338 // before we destroy the old resource provider. | 2341 // before we destroy the old resource provider. |
| 2339 ReleaseTreeResources(); | 2342 ReleaseTreeResources(); |
| 2340 | 2343 |
| 2341 // Note: order is important here. | 2344 // Note: order is important here. |
| 2342 renderer_ = nullptr; | 2345 renderer_ = nullptr; |
| 2343 CleanUpTileManagerAndUIResources(); | 2346 CleanUpTileManagerAndUIResources(); |
| 2344 resource_provider_ = nullptr; | 2347 resource_provider_ = nullptr; |
| 2345 | 2348 |
| 2346 // Detach from the old output surface and reset |output_surface_| pointer | 2349 // Detach from the old output surface and reset |output_surface_| pointer |
| 2347 // as this surface is going to be destroyed independent of if binding the | 2350 // as this surface is going to be destroyed independent of if binding the |
| 2348 // new output surface succeeds or not. | 2351 // new output surface succeeds or not. |
| 2349 if (output_surface_) { | 2352 output_surface_->DetachFromClient(); |
| 2350 output_surface_->DetachFromClient(); | 2353 output_surface_ = nullptr; |
| 2351 output_surface_ = nullptr; | |
| 2352 } | |
| 2353 | 2354 |
| 2354 // We don't know if the next OutputSurface will support GPU rasterization. | 2355 // We don't know if the next OutputSurface will support GPU rasterization. |
| 2355 // Make sure to clear the flag so that we force a re-computation. | 2356 // Make sure to clear the flag so that we force a re-computation. |
| 2356 use_gpu_rasterization_ = false; | 2357 use_gpu_rasterization_ = false; |
| 2357 } | 2358 } |
| 2358 | 2359 |
| 2359 bool LayerTreeHostImpl::InitializeRenderer(OutputSurface* output_surface) { | 2360 bool LayerTreeHostImpl::InitializeRenderer(OutputSurface* output_surface) { |
| 2360 TRACE_EVENT0("cc", "LayerTreeHostImpl::InitializeRenderer"); | 2361 TRACE_EVENT0("cc", "LayerTreeHostImpl::InitializeRenderer"); |
| 2361 | 2362 |
| 2362 ReleaseOutputSurface(); | 2363 ReleaseOutputSurface(); |
| (...skipping 1819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4182 return task_runner_provider_->HasImplThread(); | 4183 return task_runner_provider_->HasImplThread(); |
| 4183 } | 4184 } |
| 4184 | 4185 |
| 4185 bool LayerTreeHostImpl::CommitToActiveTree() const { | 4186 bool LayerTreeHostImpl::CommitToActiveTree() const { |
| 4186 // In single threaded mode we skip the pending tree and commit directly to the | 4187 // In single threaded mode we skip the pending tree and commit directly to the |
| 4187 // active tree. | 4188 // active tree. |
| 4188 return !task_runner_provider_->HasImplThread(); | 4189 return !task_runner_provider_->HasImplThread(); |
| 4189 } | 4190 } |
| 4190 | 4191 |
| 4191 } // namespace cc | 4192 } // namespace cc |
| OLD | NEW |