| 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/layers/delegated_renderer_layer_impl.h" | 5 #include "cc/layers/delegated_renderer_layer_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 // If we have a new child_id to give to the active layer, it should | 71 // If we have a new child_id to give to the active layer, it should |
| 72 // have already deleted its old child_id. | 72 // have already deleted its old child_id. |
| 73 DCHECK(delegated_layer->child_id_ == 0 || | 73 DCHECK(delegated_layer->child_id_ == 0 || |
| 74 delegated_layer->child_id_ == child_id_); | 74 delegated_layer->child_id_ == child_id_); |
| 75 delegated_layer->inverse_device_scale_factor_ = inverse_device_scale_factor_; | 75 delegated_layer->inverse_device_scale_factor_ = inverse_device_scale_factor_; |
| 76 delegated_layer->child_id_ = child_id_; | 76 delegated_layer->child_id_ = child_id_; |
| 77 delegated_layer->own_child_id_ = true; | 77 delegated_layer->own_child_id_ = true; |
| 78 own_child_id_ = false; | 78 own_child_id_ = false; |
| 79 | 79 |
| 80 if (have_render_passes_to_push_) { | 80 if (have_render_passes_to_push_) { |
| 81 DCHECK(child_id_); |
| 81 // This passes ownership of the render passes to the active tree. | 82 // This passes ownership of the render passes to the active tree. |
| 82 delegated_layer->SetRenderPasses(&render_passes_in_draw_order_); | 83 delegated_layer->SetRenderPasses(&render_passes_in_draw_order_); |
| 83 // Once resources are on the active tree, give them to the ResourceProvider | 84 // Once resources are on the active tree, give them to the ResourceProvider |
| 84 // and release unused resources from the old frame. | 85 // and release unused resources from the old frame. |
| 85 delegated_layer->TakeOwnershipOfResourcesIfOnActiveTree(resources_); | 86 delegated_layer->TakeOwnershipOfResourcesIfOnActiveTree(resources_); |
| 86 DCHECK(render_passes_in_draw_order_.empty()); | 87 DCHECK(render_passes_in_draw_order_.empty()); |
| 87 have_render_passes_to_push_ = false; | 88 have_render_passes_to_push_ = false; |
| 88 } | 89 } |
| 89 | 90 |
| 90 // This is just a copy for testing, since resources are added to the | 91 // This is just a copy for testing, since resources are added to the |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 } | 210 } |
| 210 | 211 |
| 211 scoped_ptr<LayerImpl> DelegatedRendererLayerImpl::CreateLayerImpl( | 212 scoped_ptr<LayerImpl> DelegatedRendererLayerImpl::CreateLayerImpl( |
| 212 LayerTreeImpl* tree_impl) { | 213 LayerTreeImpl* tree_impl) { |
| 213 return DelegatedRendererLayerImpl::Create(tree_impl, id()); | 214 return DelegatedRendererLayerImpl::Create(tree_impl, id()); |
| 214 } | 215 } |
| 215 | 216 |
| 216 void DelegatedRendererLayerImpl::ReleaseResources() { | 217 void DelegatedRendererLayerImpl::ReleaseResources() { |
| 217 ClearRenderPasses(); | 218 ClearRenderPasses(); |
| 218 ClearChildId(); | 219 ClearChildId(); |
| 220 have_render_passes_to_push_ = false; |
| 219 } | 221 } |
| 220 | 222 |
| 221 static inline int IndexToId(int index) { return index + 1; } | 223 static inline int IndexToId(int index) { return index + 1; } |
| 222 static inline int IdToIndex(int id) { return id - 1; } | 224 static inline int IdToIndex(int id) { return id - 1; } |
| 223 | 225 |
| 224 RenderPassId DelegatedRendererLayerImpl::FirstContributingRenderPassId() const { | 226 RenderPassId DelegatedRendererLayerImpl::FirstContributingRenderPassId() const { |
| 225 return RenderPassId(id(), IndexToId(0)); | 227 return RenderPassId(id(), IndexToId(0)); |
| 226 } | 228 } |
| 227 | 229 |
| 228 RenderPassId DelegatedRendererLayerImpl::NextContributingRenderPassId( | 230 RenderPassId DelegatedRendererLayerImpl::NextContributingRenderPassId( |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 if (own_child_id_) { | 526 if (own_child_id_) { |
| 525 ResourceProvider* provider = layer_tree_impl()->resource_provider(); | 527 ResourceProvider* provider = layer_tree_impl()->resource_provider(); |
| 526 provider->DestroyChild(child_id_); | 528 provider->DestroyChild(child_id_); |
| 527 } | 529 } |
| 528 | 530 |
| 529 resources_.clear(); | 531 resources_.clear(); |
| 530 child_id_ = 0; | 532 child_id_ = 0; |
| 531 } | 533 } |
| 532 | 534 |
| 533 } // namespace cc | 535 } // namespace cc |
| OLD | NEW |