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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
70 | 70 |
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_) { |
piman
2015/05/15 23:17:38
Oh, can you add a DCHECK(child_id_) here?
danakj
2015/05/15 23:31:21
Done.
| |
81 // This passes ownership of the render passes to the active tree. | 81 // This passes ownership of the render passes to the active tree. |
82 delegated_layer->SetRenderPasses(&render_passes_in_draw_order_); | 82 delegated_layer->SetRenderPasses(&render_passes_in_draw_order_); |
83 // Once resources are on the active tree, give them to the ResourceProvider | 83 // Once resources are on the active tree, give them to the ResourceProvider |
84 // and release unused resources from the old frame. | 84 // and release unused resources from the old frame. |
85 delegated_layer->TakeOwnershipOfResourcesIfOnActiveTree(resources_); | 85 delegated_layer->TakeOwnershipOfResourcesIfOnActiveTree(resources_); |
86 DCHECK(render_passes_in_draw_order_.empty()); | 86 DCHECK(render_passes_in_draw_order_.empty()); |
87 have_render_passes_to_push_ = false; | 87 have_render_passes_to_push_ = false; |
88 } | 88 } |
89 | 89 |
90 // This is just a copy for testing, since resources are added to the | 90 // 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 } | 209 } |
210 | 210 |
211 scoped_ptr<LayerImpl> DelegatedRendererLayerImpl::CreateLayerImpl( | 211 scoped_ptr<LayerImpl> DelegatedRendererLayerImpl::CreateLayerImpl( |
212 LayerTreeImpl* tree_impl) { | 212 LayerTreeImpl* tree_impl) { |
213 return DelegatedRendererLayerImpl::Create(tree_impl, id()); | 213 return DelegatedRendererLayerImpl::Create(tree_impl, id()); |
214 } | 214 } |
215 | 215 |
216 void DelegatedRendererLayerImpl::ReleaseResources() { | 216 void DelegatedRendererLayerImpl::ReleaseResources() { |
217 ClearRenderPasses(); | 217 ClearRenderPasses(); |
218 ClearChildId(); | 218 ClearChildId(); |
219 have_render_passes_to_push_ = false; | |
219 } | 220 } |
220 | 221 |
221 static inline int IndexToId(int index) { return index + 1; } | 222 static inline int IndexToId(int index) { return index + 1; } |
222 static inline int IdToIndex(int id) { return id - 1; } | 223 static inline int IdToIndex(int id) { return id - 1; } |
223 | 224 |
224 RenderPassId DelegatedRendererLayerImpl::FirstContributingRenderPassId() const { | 225 RenderPassId DelegatedRendererLayerImpl::FirstContributingRenderPassId() const { |
225 return RenderPassId(id(), IndexToId(0)); | 226 return RenderPassId(id(), IndexToId(0)); |
226 } | 227 } |
227 | 228 |
228 RenderPassId DelegatedRendererLayerImpl::NextContributingRenderPassId( | 229 RenderPassId DelegatedRendererLayerImpl::NextContributingRenderPassId( |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
524 if (own_child_id_) { | 525 if (own_child_id_) { |
525 ResourceProvider* provider = layer_tree_impl()->resource_provider(); | 526 ResourceProvider* provider = layer_tree_impl()->resource_provider(); |
526 provider->DestroyChild(child_id_); | 527 provider->DestroyChild(child_id_); |
527 } | 528 } |
528 | 529 |
529 resources_.clear(); | 530 resources_.clear(); |
530 child_id_ = 0; | 531 child_id_ = 0; |
531 } | 532 } |
532 | 533 |
533 } // namespace cc | 534 } // namespace cc |
OLD | NEW |