1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "cc/test/fake_delegated_renderer_layer_impl.h" 6 7 #include "base/bind.h" 8 #include "cc/output/delegated_frame_data.h" 9 #include "cc/quads/draw_quad.h" 10 11 namespace cc { 12 13 FakeDelegatedRendererLayerImpl::FakeDelegatedRendererLayerImpl( 14 LayerTreeImpl* tree_impl, int id) 15 : DelegatedRendererLayerImpl(tree_impl, id) {} 16 17 FakeDelegatedRendererLayerImpl::~FakeDelegatedRendererLayerImpl() {} 18 19 scoped_ptr<LayerImpl> FakeDelegatedRendererLayerImpl::CreateLayerImpl( 20 LayerTreeImpl* tree_impl) { 21 return FakeDelegatedRendererLayerImpl::Create( 22 tree_impl, id()).PassAs<LayerImpl>(); 23 } 24 25 static ResourceProvider::ResourceId AddResourceToFrame( 26 DelegatedFrameData* frame, 27 ResourceProvider::ResourceId resource_id) { 28 TransferableResource resource; 29 resource.id = resource_id; 30 frame->resource_list.push_back(resource); 31 return resource_id; 32 } 33 34 void FakeDelegatedRendererLayerImpl::SetFrameDataForRenderPasses( 35 ScopedPtrVector<RenderPass>* pass_list) { 36 scoped_ptr<DelegatedFrameData> delegated_frame(new DelegatedFrameData); 37 delegated_frame->render_pass_list.swap(*pass_list); 38 39 DrawQuad::ResourceIteratorCallback add_resource_to_frame_callback = 40 base::Bind(&AddResourceToFrame, 41 delegated_frame.get()); 42 for (size_t i = 0; i < delegated_frame->render_pass_list.size(); ++i) { 43 RenderPass* pass = delegated_frame->render_pass_list[i]; 44 for (size_t j = 0; j < pass->quad_list.size(); ++j) 45 pass->quad_list[j]->IterateResources(add_resource_to_frame_callback); 46 } 47 48 TransferableResourceArray resources_for_ack; 49 SetFrameData(delegated_frame.Pass(), gfx::RectF()); 50 CollectUnusedResources(&resources_for_ack); 51 } 52 53 } // namespace cc 54