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 |