Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(777)

Side by Side Diff: cc/test/fake_delegated_renderer_layer_impl.cc

Issue 26023004: aura: Allow delegated frames to be used by more than one impl layer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: frameprovider: are_layers_attached checks Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/test/fake_delegated_renderer_layer.cc ('k') | cc/trees/layer_tree_host_unittest_context.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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/test/fake_delegated_renderer_layer_impl.h" 5 #include "cc/test/fake_delegated_renderer_layer_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "cc/output/delegated_frame_data.h" 8 #include "cc/output/delegated_frame_data.h"
9 #include "cc/quads/draw_quad.h" 9 #include "cc/quads/draw_quad.h"
10 #include "cc/resources/returned_resource.h" 10 #include "cc/resources/returned_resource.h"
11 #include "cc/trees/layer_tree_impl.h"
11 12
12 namespace cc { 13 namespace cc {
13 14
14 FakeDelegatedRendererLayerImpl::FakeDelegatedRendererLayerImpl( 15 FakeDelegatedRendererLayerImpl::FakeDelegatedRendererLayerImpl(
15 LayerTreeImpl* tree_impl, int id) 16 LayerTreeImpl* tree_impl, int id)
16 : DelegatedRendererLayerImpl(tree_impl, id) {} 17 : DelegatedRendererLayerImpl(tree_impl, id) {}
17 18
18 FakeDelegatedRendererLayerImpl::~FakeDelegatedRendererLayerImpl() {} 19 FakeDelegatedRendererLayerImpl::~FakeDelegatedRendererLayerImpl() {}
19 20
20 scoped_ptr<LayerImpl> FakeDelegatedRendererLayerImpl::CreateLayerImpl( 21 scoped_ptr<LayerImpl> FakeDelegatedRendererLayerImpl::CreateLayerImpl(
21 LayerTreeImpl* tree_impl) { 22 LayerTreeImpl* tree_impl) {
22 return FakeDelegatedRendererLayerImpl::Create( 23 return FakeDelegatedRendererLayerImpl::Create(
23 tree_impl, id()).PassAs<LayerImpl>(); 24 tree_impl, id()).PassAs<LayerImpl>();
24 } 25 }
25 26
26 static ResourceProvider::ResourceId AddResourceToFrame( 27 static ResourceProvider::ResourceId AddResourceToFrame(
28 ResourceProvider* resource_provider,
27 DelegatedFrameData* frame, 29 DelegatedFrameData* frame,
28 ResourceProvider::ResourceId resource_id) { 30 ResourceProvider::ResourceId resource_id) {
29 TransferableResource resource; 31 TransferableResource resource;
30 resource.id = resource_id; 32 resource.id = resource_id;
31 resource.target = GL_TEXTURE_2D; 33 resource.target = resource_provider->TargetForTesting(resource_id);
32 frame->resource_list.push_back(resource); 34 frame->resource_list.push_back(resource);
33 return resource_id; 35 return resource_id;
34 } 36 }
35 37
36 ResourceProvider::ResourceIdSet FakeDelegatedRendererLayerImpl::Resources() 38 ResourceProvider::ResourceIdSet FakeDelegatedRendererLayerImpl::Resources()
37 const { 39 const {
38 ResourceProvider::ResourceIdSet set; 40 ResourceProvider::ResourceIdSet set;
39 ResourceProvider::ResourceIdArray array; 41 ResourceProvider::ResourceIdArray array;
40 array = ResourcesForTesting(); 42 array = ResourcesForTesting();
41 for (size_t i = 0; i < array.size(); ++i) 43 for (size_t i = 0; i < array.size(); ++i)
42 set.insert(array[i]); 44 set.insert(array[i]);
43 return set; 45 return set;
44 } 46 }
45 47
46 void NoopReturnCallback(const ReturnedResourceArray& returned) {} 48 void NoopReturnCallback(const ReturnedResourceArray& returned) {}
47 49
48 void FakeDelegatedRendererLayerImpl::SetFrameDataForRenderPasses( 50 void FakeDelegatedRendererLayerImpl::SetFrameDataForRenderPasses(
49 ScopedPtrVector<RenderPass>* pass_list) { 51 ScopedPtrVector<RenderPass>* pass_list) {
50 scoped_ptr<DelegatedFrameData> delegated_frame(new DelegatedFrameData); 52 scoped_ptr<DelegatedFrameData> delegated_frame(new DelegatedFrameData);
51 delegated_frame->render_pass_list.swap(*pass_list); 53 delegated_frame->render_pass_list.swap(*pass_list);
52 54
55 ResourceProvider* resource_provider = layer_tree_impl()->resource_provider();
56
53 DrawQuad::ResourceIteratorCallback add_resource_to_frame_callback = 57 DrawQuad::ResourceIteratorCallback add_resource_to_frame_callback =
54 base::Bind(&AddResourceToFrame, 58 base::Bind(&AddResourceToFrame, resource_provider, delegated_frame.get());
55 delegated_frame.get());
56 for (size_t i = 0; i < delegated_frame->render_pass_list.size(); ++i) { 59 for (size_t i = 0; i < delegated_frame->render_pass_list.size(); ++i) {
57 RenderPass* pass = delegated_frame->render_pass_list[i]; 60 RenderPass* pass = delegated_frame->render_pass_list[i];
58 for (size_t j = 0; j < pass->quad_list.size(); ++j) 61 for (size_t j = 0; j < pass->quad_list.size(); ++j)
59 pass->quad_list[j]->IterateResources(add_resource_to_frame_callback); 62 pass->quad_list[j]->IterateResources(add_resource_to_frame_callback);
60 } 63 }
61 64
62 CreateChildIdIfNeeded(base::Bind(&NoopReturnCallback)); 65 CreateChildIdIfNeeded(base::Bind(&NoopReturnCallback));
63 SetFrameData(delegated_frame.Pass(), gfx::RectF()); 66 SetFrameData(delegated_frame.get(), gfx::RectF());
64 } 67 }
65 68
66 } // namespace cc 69 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/fake_delegated_renderer_layer.cc ('k') | cc/trees/layer_tree_host_unittest_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698