Chromium Code Reviews| Index: cc/delegated_renderer_layer.cc |
| diff --git a/cc/delegated_renderer_layer.cc b/cc/delegated_renderer_layer.cc |
| index 7e06e4fc52938ec8b6320040cee530b262caf852..8d9444d243362e8725e17d7a796208e3b28251ba 100644 |
| --- a/cc/delegated_renderer_layer.cc |
| +++ b/cc/delegated_renderer_layer.cc |
| @@ -37,10 +37,11 @@ void DelegatedRendererLayer::pushPropertiesTo(LayerImpl* impl) { |
| delegated_impl->SetDisplaySize(display_size_); |
| - if (!frame_data_) |
| - return; |
| - |
| - if (frame_size_.IsEmpty()) { |
| + if (!frame_data_) { |
| + delegated_impl->SetFrameData(scoped_ptr<DelegatedFrameData>(), |
| + gfx::Rect(), |
| + &unused_resources_for_child_compositor_); |
| + } else if (frame_size_.IsEmpty()) { |
| scoped_ptr<DelegatedFrameData> empty_frame(new DelegatedFrameData); |
| delegated_impl->SetFrameData(empty_frame.Pass(), |
| gfx::Rect(), |
| @@ -75,6 +76,12 @@ void DelegatedRendererLayer::SetFrameData( |
| RenderPass* root_pass = frame_data_->render_pass_list.back(); |
| damage_in_frame_.Union(root_pass->damage_rect); |
| frame_size_ = root_pass->output_rect.size(); |
| + |
| + for (size_t i = 0; i < unused_resources_for_child_compositor_.size(); ++i) { |
| + frame_data_->resource_list.push_back( |
| + unused_resources_for_child_compositor_[i]); |
| + } |
| + unused_resources_for_child_compositor_.clear(); |
|
piman
2013/03/05 19:30:51
Note: we have some area for optimization here - ma
danakj
2013/03/05 19:39:14
sgtm
|
| } else { |
| frame_size_ = gfx::Size(); |
| } |