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

Side by Side Diff: cc/delegated_renderer_layer_impl_unittest.cc

Issue 11264056: cc: Use gfx:: Geometry types for positions, bounds, and related things. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ScaleAsVector Created 8 years, 1 month 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/debug_rect_history.cc ('k') | cc/draw_quad_unittest.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 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 "config.h" 5 #include "config.h"
6 6
7 #include "cc/delegated_renderer_layer_impl.h" 7 #include "cc/delegated_renderer_layer_impl.h"
8 8
9 #include "cc/append_quads_data.h" 9 #include "cc/append_quads_data.h"
10 #include "cc/layer_tree_host_impl.h" 10 #include "cc/layer_tree_host_impl.h"
(...skipping 18 matching lines...) Expand all
29 using namespace cc; 29 using namespace cc;
30 using namespace WebKitTests; 30 using namespace WebKitTests;
31 31
32 namespace { 32 namespace {
33 33
34 class DelegatedRendererLayerImplTest : public testing::Test, public LayerTreeHos tImplClient { 34 class DelegatedRendererLayerImplTest : public testing::Test, public LayerTreeHos tImplClient {
35 public: 35 public:
36 DelegatedRendererLayerImplTest() 36 DelegatedRendererLayerImplTest()
37 { 37 {
38 LayerTreeSettings settings; 38 LayerTreeSettings settings;
39 settings.minimumOcclusionTrackingSize = IntSize(); 39 settings.minimumOcclusionTrackingSize = gfx::Size();
40 40
41 m_hostImpl = LayerTreeHostImpl::create(settings, this); 41 m_hostImpl = LayerTreeHostImpl::create(settings, this);
42 m_hostImpl->initializeRenderer(createContext()); 42 m_hostImpl->initializeRenderer(createContext());
43 m_hostImpl->setViewportSize(IntSize(10, 10), IntSize(10, 10)); 43 m_hostImpl->setViewportSize(gfx::Size(10, 10), gfx::Size(10, 10));
44 } 44 }
45 45
46 // LayerTreeHostImplClient implementation. 46 // LayerTreeHostImplClient implementation.
47 virtual void didLoseContextOnImplThread() OVERRIDE { } 47 virtual void didLoseContextOnImplThread() OVERRIDE { }
48 virtual void onSwapBuffersCompleteOnImplThread() OVERRIDE { } 48 virtual void onSwapBuffersCompleteOnImplThread() OVERRIDE { }
49 virtual void onVSyncParametersChanged(base::TimeTicks, base::TimeDelta) OVER RIDE { } 49 virtual void onVSyncParametersChanged(base::TimeTicks, base::TimeDelta) OVER RIDE { }
50 virtual void onCanDrawStateChanged(bool) OVERRIDE { } 50 virtual void onCanDrawStateChanged(bool) OVERRIDE { }
51 virtual void setNeedsRedrawOnImplThread() OVERRIDE { } 51 virtual void setNeedsRedrawOnImplThread() OVERRIDE { }
52 virtual void setNeedsCommitOnImplThread() OVERRIDE { } 52 virtual void setNeedsCommitOnImplThread() OVERRIDE { }
53 virtual void postAnimationEventsToMainThreadOnImplThread(scoped_ptr<Animatio nEventsVector>, base::Time wallClockTime) OVERRIDE { } 53 virtual void postAnimationEventsToMainThreadOnImplThread(scoped_ptr<Animatio nEventsVector>, base::Time wallClockTime) OVERRIDE { }
54 virtual bool reduceContentsTextureMemoryOnImplThread(size_t limitBytes, int priorityCutoff) OVERRIDE { return true; } 54 virtual bool reduceContentsTextureMemoryOnImplThread(size_t limitBytes, int priorityCutoff) OVERRIDE { return true; }
55 virtual void sendManagedMemoryStats() OVERRIDE { } 55 virtual void sendManagedMemoryStats() OVERRIDE { }
56 56
57 protected: 57 protected:
58 scoped_ptr<GraphicsContext> createContext() 58 scoped_ptr<GraphicsContext> createContext()
59 { 59 {
60 return FakeWebCompositorOutputSurface::create(scoped_ptr<WebKit::WebGrap hicsContext3D>(new FakeWebGraphicsContext3D)).PassAs<GraphicsContext>(); 60 return FakeWebCompositorOutputSurface::create(scoped_ptr<WebKit::WebGrap hicsContext3D>(new FakeWebGraphicsContext3D)).PassAs<GraphicsContext>();
61 } 61 }
62 62
63 DebugScopedSetImplThread m_alwaysImplThread; 63 DebugScopedSetImplThread m_alwaysImplThread;
64 DebugScopedSetMainThreadBlocked m_alwaysMainThreadBlocked; 64 DebugScopedSetMainThreadBlocked m_alwaysMainThreadBlocked;
65 65
66 scoped_ptr<LayerTreeHostImpl> m_hostImpl; 66 scoped_ptr<LayerTreeHostImpl> m_hostImpl;
67 }; 67 };
68 68
69 static TestRenderPass* addRenderPass(ScopedPtrVector<RenderPass>& passList, Rend erPass::Id id, IntRect outputRect, WebTransformationMatrix rootTransform) 69 static TestRenderPass* addRenderPass(ScopedPtrVector<RenderPass>& passList, Rend erPass::Id id, gfx::Rect outputRect, WebTransformationMatrix rootTransform)
70 { 70 {
71 scoped_ptr<TestRenderPass> pass(TestRenderPass::create(id, outputRect, rootT ransform)); 71 scoped_ptr<TestRenderPass> pass(TestRenderPass::create(id, outputRect, rootT ransform));
72 TestRenderPass* saved = pass.get(); 72 TestRenderPass* saved = pass.get();
73 passList.append(pass.PassAs<RenderPass>()); 73 passList.append(pass.PassAs<RenderPass>());
74 return saved; 74 return saved;
75 } 75 }
76 76
77 static SolidColorDrawQuad* addQuad(TestRenderPass* pass, IntRect rect, SkColor c olor) 77 static SolidColorDrawQuad* addQuad(TestRenderPass* pass, gfx::Rect rect, SkColor color)
78 { 78 {
79 MockQuadCuller quadSink(pass->quadList(), pass->sharedQuadStateList()); 79 MockQuadCuller quadSink(pass->quadList(), pass->sharedQuadStateList());
80 AppendQuadsData data(pass->id()); 80 AppendQuadsData data(pass->id());
81 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState:: create(WebTransformationMatrix(), rect, rect, 1, false)); 81 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState:: create(WebTransformationMatrix(), rect, rect, 1, false));
82 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::create(sharedState , rect, color); 82 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::create(sharedState , rect, color);
83 SolidColorDrawQuad* quadPtr = quad.get(); 83 SolidColorDrawQuad* quadPtr = quad.get();
84 quadSink.append(quad.PassAs<DrawQuad>(), data); 84 quadSink.append(quad.PassAs<DrawQuad>(), data);
85 return quadPtr; 85 return quadPtr;
86 } 86 }
87 87
(...skipping 10 matching lines...) Expand all
98 class DelegatedRendererLayerImplTestSimple : public DelegatedRendererLayerImplTe st { 98 class DelegatedRendererLayerImplTestSimple : public DelegatedRendererLayerImplTe st {
99 public: 99 public:
100 DelegatedRendererLayerImplTestSimple() 100 DelegatedRendererLayerImplTestSimple()
101 : DelegatedRendererLayerImplTest() 101 : DelegatedRendererLayerImplTest()
102 { 102 {
103 scoped_ptr<LayerImpl> rootLayer = SolidColorLayerImpl::create(1).PassAs< LayerImpl>(); 103 scoped_ptr<LayerImpl> rootLayer = SolidColorLayerImpl::create(1).PassAs< LayerImpl>();
104 scoped_ptr<LayerImpl> layerBefore = SolidColorLayerImpl::create(2).PassA s<LayerImpl>(); 104 scoped_ptr<LayerImpl> layerBefore = SolidColorLayerImpl::create(2).PassA s<LayerImpl>();
105 scoped_ptr<LayerImpl> layerAfter = SolidColorLayerImpl::create(3).PassAs <LayerImpl>(); 105 scoped_ptr<LayerImpl> layerAfter = SolidColorLayerImpl::create(3).PassAs <LayerImpl>();
106 scoped_ptr<DelegatedRendererLayerImpl> delegatedRendererLayer = Delegate dRendererLayerImpl::create(4); 106 scoped_ptr<DelegatedRendererLayerImpl> delegatedRendererLayer = Delegate dRendererLayerImpl::create(4);
107 107
108 m_hostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100)); 108 m_hostImpl->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100));
109 rootLayer->setBounds(IntSize(100, 100)); 109 rootLayer->setBounds(gfx::Size(100, 100));
110 110
111 layerBefore->setPosition(IntPoint(20, 20)); 111 layerBefore->setPosition(gfx::Point(20, 20));
112 layerBefore->setBounds(IntSize(14, 14)); 112 layerBefore->setBounds(gfx::Size(14, 14));
113 layerBefore->setContentBounds(IntSize(14, 14)); 113 layerBefore->setContentBounds(gfx::Size(14, 14));
114 layerBefore->setDrawsContent(true); 114 layerBefore->setDrawsContent(true);
115 layerBefore->setForceRenderSurface(true); 115 layerBefore->setForceRenderSurface(true);
116 116
117 layerAfter->setPosition(IntPoint(5, 5)); 117 layerAfter->setPosition(gfx::Point(5, 5));
118 layerAfter->setBounds(IntSize(15, 15)); 118 layerAfter->setBounds(gfx::Size(15, 15));
119 layerAfter->setContentBounds(IntSize(15, 15)); 119 layerAfter->setContentBounds(gfx::Size(15, 15));
120 layerAfter->setDrawsContent(true); 120 layerAfter->setDrawsContent(true);
121 layerAfter->setForceRenderSurface(true); 121 layerAfter->setForceRenderSurface(true);
122 122
123 delegatedRendererLayer->setPosition(IntPoint(3, 3)); 123 delegatedRendererLayer->setPosition(gfx::Point(3, 3));
124 delegatedRendererLayer->setBounds(IntSize(10, 10)); 124 delegatedRendererLayer->setBounds(gfx::Size(10, 10));
125 delegatedRendererLayer->setContentBounds(IntSize(10, 10)); 125 delegatedRendererLayer->setContentBounds(gfx::Size(10, 10));
126 delegatedRendererLayer->setDrawsContent(true); 126 delegatedRendererLayer->setDrawsContent(true);
127 WebTransformationMatrix transform; 127 WebTransformationMatrix transform;
128 transform.translate(1, 1); 128 transform.translate(1, 1);
129 delegatedRendererLayer->setTransform(transform); 129 delegatedRendererLayer->setTransform(transform);
130 130
131 ScopedPtrVector<RenderPass> delegatedRenderPasses; 131 ScopedPtrVector<RenderPass> delegatedRenderPasses;
132 TestRenderPass* pass1 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 6), IntRect(6, 6, 6, 6), WebTransformationMatrix()); 132 TestRenderPass* pass1 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 6), gfx::Rect(6, 6, 6, 6), WebTransformationMatrix());
133 addQuad(pass1, IntRect(0, 0, 6, 6), 33u); 133 addQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u);
134 TestRenderPass* pass2 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 7), IntRect(7, 7, 7, 7), WebTransformationMatrix()); 134 TestRenderPass* pass2 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 7), gfx::Rect(7, 7, 7, 7), WebTransformationMatrix());
135 addQuad(pass2, IntRect(0, 0, 7, 7), 22u); 135 addQuad(pass2, gfx::Rect(0, 0, 7, 7), 22u);
136 addRenderPassQuad(pass2, pass1); 136 addRenderPassQuad(pass2, pass1);
137 TestRenderPass* pass3 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 8), IntRect(8, 8, 8, 8), WebTransformationMatrix()); 137 TestRenderPass* pass3 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 8), gfx::Rect(8, 8, 8, 8), WebTransformationMatrix());
138 addRenderPassQuad(pass3, pass2); 138 addRenderPassQuad(pass3, pass2);
139 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses); 139 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses);
140 140
141 // The RenderPasses should be taken by the layer. 141 // The RenderPasses should be taken by the layer.
142 EXPECT_EQ(0u, delegatedRenderPasses.size()); 142 EXPECT_EQ(0u, delegatedRenderPasses.size());
143 143
144 m_rootLayerPtr = rootLayer.get(); 144 m_rootLayerPtr = rootLayer.get();
145 m_layerBeforePtr = layerBefore.get(); 145 m_layerBeforePtr = layerBefore.get();
146 m_layerAfterPtr = layerAfter.get(); 146 m_layerAfterPtr = layerAfter.get();
147 m_delegatedRendererLayerPtr = delegatedRendererLayer.get(); 147 m_delegatedRendererLayerPtr = delegatedRendererLayer.get();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 EXPECT_EQ(2, frame.renderPasses[2]->id().index); 180 EXPECT_EQ(2, frame.renderPasses[2]->id().index);
181 // And all other RenderPasses should be non-delegated. 181 // And all other RenderPasses should be non-delegated.
182 EXPECT_NE(4, frame.renderPasses[0]->id().layerId); 182 EXPECT_NE(4, frame.renderPasses[0]->id().layerId);
183 EXPECT_EQ(0, frame.renderPasses[0]->id().index); 183 EXPECT_EQ(0, frame.renderPasses[0]->id().index);
184 EXPECT_NE(4, frame.renderPasses[3]->id().layerId); 184 EXPECT_NE(4, frame.renderPasses[3]->id().layerId);
185 EXPECT_EQ(0, frame.renderPasses[3]->id().index); 185 EXPECT_EQ(0, frame.renderPasses[3]->id().index);
186 EXPECT_NE(4, frame.renderPasses[4]->id().layerId); 186 EXPECT_NE(4, frame.renderPasses[4]->id().layerId);
187 EXPECT_EQ(0, frame.renderPasses[4]->id().index); 187 EXPECT_EQ(0, frame.renderPasses[4]->id().index);
188 188
189 // The DelegatedRendererLayer should have added its RenderPasses to the fram e in order. 189 // The DelegatedRendererLayer should have added its RenderPasses to the fram e in order.
190 EXPECT_RECT_EQ(IntRect(6, 6, 6, 6), frame.renderPasses[1]->outputRect()); 190 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[1]->outputRect());
191 EXPECT_RECT_EQ(IntRect(7, 7, 7, 7), frame.renderPasses[2]->outputRect()); 191 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[2]->outputRect());
192 } 192 }
193 193
194 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToContributingRenderPasses ) 194 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToContributingRenderPasses )
195 { 195 {
196 LayerTreeHostImpl::FrameData frame; 196 LayerTreeHostImpl::FrameData frame;
197 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 197 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
198 m_hostImpl->drawLayers(frame); 198 m_hostImpl->drawLayers(frame);
199 m_hostImpl->didDrawAllLayers(frame); 199 m_hostImpl->didDrawAllLayers(frame);
200 200
201 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes. 201 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes.
202 ASSERT_EQ(5u, frame.renderPasses.size()); 202 ASSERT_EQ(5u, frame.renderPasses.size());
203 203
204 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame. 204 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame.
205 EXPECT_EQ(4, frame.renderPasses[1]->id().layerId); 205 EXPECT_EQ(4, frame.renderPasses[1]->id().layerId);
206 EXPECT_EQ(1, frame.renderPasses[1]->id().index); 206 EXPECT_EQ(1, frame.renderPasses[1]->id().index);
207 EXPECT_EQ(4, frame.renderPasses[2]->id().layerId); 207 EXPECT_EQ(4, frame.renderPasses[2]->id().layerId);
208 EXPECT_EQ(2, frame.renderPasses[2]->id().index); 208 EXPECT_EQ(2, frame.renderPasses[2]->id().index);
209 209
210 // The DelegatedRendererLayer should have added copies of its quads to contr ibuting RenderPasses. 210 // The DelegatedRendererLayer should have added copies of its quads to contr ibuting RenderPasses.
211 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); 211 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size());
212 EXPECT_RECT_EQ(IntRect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]->qu adRect()); 212 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]-> quadRect());
213 213
214 // Verify it added the right quads. 214 // Verify it added the right quads.
215 ASSERT_EQ(2u, frame.renderPasses[2]->quadList().size()); 215 ASSERT_EQ(2u, frame.renderPasses[2]->quadList().size());
216 EXPECT_RECT_EQ(IntRect(0, 0, 7, 7), frame.renderPasses[2]->quadList()[0]->qu adRect()); 216 EXPECT_RECT_EQ(gfx::Rect(0, 0, 7, 7), frame.renderPasses[2]->quadList()[0]-> quadRect());
217 EXPECT_RECT_EQ(IntRect(6, 6, 6, 6), frame.renderPasses[2]->quadList()[1]->qu adRect()); 217 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[2]->quadList()[1]-> quadRect());
218 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); 218 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size());
219 EXPECT_RECT_EQ(IntRect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]->qu adRect()); 219 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]-> quadRect());
220 } 220 }
221 221
222 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) 222 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass)
223 { 223 {
224 LayerTreeHostImpl::FrameData frame; 224 LayerTreeHostImpl::FrameData frame;
225 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 225 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
226 m_hostImpl->drawLayers(frame); 226 m_hostImpl->drawLayers(frame);
227 m_hostImpl->didDrawAllLayers(frame); 227 m_hostImpl->didDrawAllLayers(frame);
228 228
229 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes. 229 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes.
230 ASSERT_EQ(5u, frame.renderPasses.size()); 230 ASSERT_EQ(5u, frame.renderPasses.size());
231 231
232 // The layer's target is the RenderPass from m_layerAfter. 232 // The layer's target is the RenderPass from m_layerAfter.
233 EXPECT_EQ(RenderPass::Id(3, 0), frame.renderPasses[3]->id()); 233 EXPECT_EQ(RenderPass::Id(3, 0), frame.renderPasses[3]->id());
234 234
235 // The DelegatedRendererLayer should have added copies of quads in its root RenderPass to its target RenderPass. 235 // The DelegatedRendererLayer should have added copies of quads in its root RenderPass to its target RenderPass.
236 // The m_layerAfter also adds one quad. 236 // The m_layerAfter also adds one quad.
237 ASSERT_EQ(2u, frame.renderPasses[3]->quadList().size()); 237 ASSERT_EQ(2u, frame.renderPasses[3]->quadList().size());
238 238
239 // Verify it added the right quads. 239 // Verify it added the right quads.
240 EXPECT_RECT_EQ(IntRect(7, 7, 7, 7), frame.renderPasses[3]->quadList()[0]->qu adRect()); 240 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[3]->quadList()[0]-> quadRect());
241 241
242 // Its target layer should have a quad as well. 242 // Its target layer should have a quad as well.
243 EXPECT_RECT_EQ(IntRect(0, 0, 15, 15), frame.renderPasses[3]->quadList()[1]-> quadRect()); 243 EXPECT_RECT_EQ(gfx::Rect(0, 0, 15, 15), frame.renderPasses[3]->quadList()[1] ->quadRect());
244 } 244 }
245 245
246 TEST_F(DelegatedRendererLayerImplTestSimple, QuadsFromRootRenderPassAreModifiedF orTheTarget) 246 TEST_F(DelegatedRendererLayerImplTestSimple, QuadsFromRootRenderPassAreModifiedF orTheTarget)
247 { 247 {
248 LayerTreeHostImpl::FrameData frame; 248 LayerTreeHostImpl::FrameData frame;
249 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 249 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
250 m_hostImpl->drawLayers(frame); 250 m_hostImpl->drawLayers(frame);
251 m_hostImpl->didDrawAllLayers(frame); 251 m_hostImpl->didDrawAllLayers(frame);
252 252
253 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes. 253 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes.
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 ASSERT_EQ(6u, frame.renderPasses.size()); 318 ASSERT_EQ(6u, frame.renderPasses.size());
319 319
320 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame. 320 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame.
321 EXPECT_EQ(4, frame.renderPasses[1]->id().layerId); 321 EXPECT_EQ(4, frame.renderPasses[1]->id().layerId);
322 EXPECT_EQ(1, frame.renderPasses[1]->id().index); 322 EXPECT_EQ(1, frame.renderPasses[1]->id().index);
323 EXPECT_EQ(4, frame.renderPasses[2]->id().layerId); 323 EXPECT_EQ(4, frame.renderPasses[2]->id().layerId);
324 EXPECT_EQ(2, frame.renderPasses[2]->id().index); 324 EXPECT_EQ(2, frame.renderPasses[2]->id().index);
325 325
326 // The DelegatedRendererLayer should have added copies of its quads to contr ibuting RenderPasses. 326 // The DelegatedRendererLayer should have added copies of its quads to contr ibuting RenderPasses.
327 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); 327 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size());
328 EXPECT_RECT_EQ(IntRect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]->qu adRect()); 328 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]-> quadRect());
329 329
330 // Verify it added the right quads. 330 // Verify it added the right quads.
331 ASSERT_EQ(2u, frame.renderPasses[2]->quadList().size()); 331 ASSERT_EQ(2u, frame.renderPasses[2]->quadList().size());
332 EXPECT_RECT_EQ(IntRect(0, 0, 7, 7), frame.renderPasses[2]->quadList()[0]->qu adRect()); 332 EXPECT_RECT_EQ(gfx::Rect(0, 0, 7, 7), frame.renderPasses[2]->quadList()[0]-> quadRect());
333 EXPECT_RECT_EQ(IntRect(6, 6, 6, 6), frame.renderPasses[2]->quadList()[1]->qu adRect()); 333 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[2]->quadList()[1]-> quadRect());
334 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); 334 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size());
335 EXPECT_RECT_EQ(IntRect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]->qu adRect()); 335 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]-> quadRect());
336 } 336 }
337 337
338 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) 338 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass)
339 { 339 {
340 LayerTreeHostImpl::FrameData frame; 340 LayerTreeHostImpl::FrameData frame;
341 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 341 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
342 m_hostImpl->drawLayers(frame); 342 m_hostImpl->drawLayers(frame);
343 m_hostImpl->didDrawAllLayers(frame); 343 m_hostImpl->didDrawAllLayers(frame);
344 344
345 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass. 345 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass.
346 ASSERT_EQ(6u, frame.renderPasses.size()); 346 ASSERT_EQ(6u, frame.renderPasses.size());
347 347
348 // The layer's target is the RenderPass owned by itself. 348 // The layer's target is the RenderPass owned by itself.
349 EXPECT_EQ(RenderPass::Id(4, 0), frame.renderPasses[3]->id()); 349 EXPECT_EQ(RenderPass::Id(4, 0), frame.renderPasses[3]->id());
350 350
351 // The DelegatedRendererLayer should have added copies of quads in its root RenderPass to its target RenderPass. 351 // The DelegatedRendererLayer should have added copies of quads in its root RenderPass to its target RenderPass.
352 // The m_layerAfter also adds one quad. 352 // The m_layerAfter also adds one quad.
353 ASSERT_EQ(1u, frame.renderPasses[3]->quadList().size()); 353 ASSERT_EQ(1u, frame.renderPasses[3]->quadList().size());
354 354
355 // Verify it added the right quads. 355 // Verify it added the right quads.
356 EXPECT_RECT_EQ(IntRect(7, 7, 7, 7), frame.renderPasses[3]->quadList()[0]->qu adRect()); 356 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[3]->quadList()[0]-> quadRect());
357 } 357 }
358 358
359 TEST_F(DelegatedRendererLayerImplTestOwnSurface, QuadsFromRootRenderPassAreNotMo difiedForTheTarget) 359 TEST_F(DelegatedRendererLayerImplTestOwnSurface, QuadsFromRootRenderPassAreNotMo difiedForTheTarget)
360 { 360 {
361 LayerTreeHostImpl::FrameData frame; 361 LayerTreeHostImpl::FrameData frame;
362 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 362 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
363 m_hostImpl->drawLayers(frame); 363 m_hostImpl->drawLayers(frame);
364 m_hostImpl->didDrawAllLayers(frame); 364 m_hostImpl->didDrawAllLayers(frame);
365 365
366 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass. 366 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass.
(...skipping 12 matching lines...) Expand all
379 } 379 }
380 380
381 class DelegatedRendererLayerImplTestSharedData : public DelegatedRendererLayerIm plTest { 381 class DelegatedRendererLayerImplTestSharedData : public DelegatedRendererLayerIm plTest {
382 public: 382 public:
383 DelegatedRendererLayerImplTestSharedData() 383 DelegatedRendererLayerImplTestSharedData()
384 : DelegatedRendererLayerImplTest() 384 : DelegatedRendererLayerImplTest()
385 { 385 {
386 scoped_ptr<LayerImpl> rootLayer = LayerImpl::create(1); 386 scoped_ptr<LayerImpl> rootLayer = LayerImpl::create(1);
387 scoped_ptr<DelegatedRendererLayerImpl> delegatedRendererLayer = Delegate dRendererLayerImpl::create(2); 387 scoped_ptr<DelegatedRendererLayerImpl> delegatedRendererLayer = Delegate dRendererLayerImpl::create(2);
388 388
389 m_hostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100)); 389 m_hostImpl->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100));
390 rootLayer->setBounds(IntSize(100, 100)); 390 rootLayer->setBounds(gfx::Size(100, 100));
391 391
392 delegatedRendererLayer->setPosition(IntPoint(20, 20)); 392 delegatedRendererLayer->setPosition(gfx::Point(20, 20));
393 delegatedRendererLayer->setBounds(IntSize(20, 20)); 393 delegatedRendererLayer->setBounds(gfx::Size(20, 20));
394 delegatedRendererLayer->setContentBounds(IntSize(20, 20)); 394 delegatedRendererLayer->setContentBounds(gfx::Size(20, 20));
395 delegatedRendererLayer->setDrawsContent(true); 395 delegatedRendererLayer->setDrawsContent(true);
396 WebTransformationMatrix transform; 396 WebTransformationMatrix transform;
397 transform.translate(10, 10); 397 transform.translate(10, 10);
398 delegatedRendererLayer->setTransform(transform); 398 delegatedRendererLayer->setTransform(transform);
399 399
400 ScopedPtrVector<RenderPass> delegatedRenderPasses; 400 ScopedPtrVector<RenderPass> delegatedRenderPasses;
401 IntRect passRect(0, 0, 50, 50); 401 gfx::Rect passRect(0, 0, 50, 50);
402 TestRenderPass* pass = addRenderPass(delegatedRenderPasses, RenderPass:: Id(9, 6), passRect, WebTransformationMatrix()); 402 TestRenderPass* pass = addRenderPass(delegatedRenderPasses, RenderPass:: Id(9, 6), passRect, WebTransformationMatrix());
403 MockQuadCuller quadSink(pass->quadList(), pass->sharedQuadStateList()); 403 MockQuadCuller quadSink(pass->quadList(), pass->sharedQuadStateList());
404 AppendQuadsData data(pass->id()); 404 AppendQuadsData data(pass->id());
405 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadSta te::create(WebTransformationMatrix(), passRect, passRect, 1, false)); 405 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadSta te::create(WebTransformationMatrix(), passRect, passRect, 1, false));
406 quadSink.append(SolidColorDrawQuad::create(sharedState, IntRect(0, 0, 10 , 10), 1u).PassAs<DrawQuad>(), data); 406 quadSink.append(SolidColorDrawQuad::create(sharedState, gfx::Rect(0, 0, 10, 10), 1u).PassAs<DrawQuad>(), data);
407 quadSink.append(SolidColorDrawQuad::create(sharedState, IntRect(0, 10, 1 0, 10), 2u).PassAs<DrawQuad>(), data); 407 quadSink.append(SolidColorDrawQuad::create(sharedState, gfx::Rect(0, 10, 10, 10), 2u).PassAs<DrawQuad>(), data);
408 quadSink.append(SolidColorDrawQuad::create(sharedState, IntRect(10, 0, 1 0, 10), 3u).PassAs<DrawQuad>(), data); 408 quadSink.append(SolidColorDrawQuad::create(sharedState, gfx::Rect(10, 0, 10, 10), 3u).PassAs<DrawQuad>(), data);
409 quadSink.append(SolidColorDrawQuad::create(sharedState, IntRect(10, 10, 10, 10), 4u).PassAs<DrawQuad>(), data); 409 quadSink.append(SolidColorDrawQuad::create(sharedState, gfx::Rect(10, 10 , 10, 10), 4u).PassAs<DrawQuad>(), data);
410 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses); 410 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses);
411 411
412 // The RenderPasses should be taken by the layer. 412 // The RenderPasses should be taken by the layer.
413 EXPECT_EQ(0u, delegatedRenderPasses.size()); 413 EXPECT_EQ(0u, delegatedRenderPasses.size());
414 414
415 m_rootLayerPtr = rootLayer.get(); 415 m_rootLayerPtr = rootLayer.get();
416 m_delegatedRendererLayerPtr = delegatedRendererLayer.get(); 416 m_delegatedRendererLayerPtr = delegatedRendererLayer.get();
417 417
418 rootLayer->addChild(delegatedRendererLayer.PassAs<LayerImpl>()); 418 rootLayer->addChild(delegatedRendererLayer.PassAs<LayerImpl>());
419 419
(...skipping 19 matching lines...) Expand all
439 const QuadList& quadList = frame.renderPasses[0]->quadList(); 439 const QuadList& quadList = frame.renderPasses[0]->quadList();
440 ASSERT_EQ(4u, quadList.size()); 440 ASSERT_EQ(4u, quadList.size());
441 441
442 // All quads should share the same state. 442 // All quads should share the same state.
443 const SharedQuadState* sharedState = quadList[0]->sharedQuadState(); 443 const SharedQuadState* sharedState = quadList[0]->sharedQuadState();
444 EXPECT_EQ(sharedState, quadList[1]->sharedQuadState()); 444 EXPECT_EQ(sharedState, quadList[1]->sharedQuadState());
445 EXPECT_EQ(sharedState, quadList[2]->sharedQuadState()); 445 EXPECT_EQ(sharedState, quadList[2]->sharedQuadState());
446 EXPECT_EQ(sharedState, quadList[3]->sharedQuadState()); 446 EXPECT_EQ(sharedState, quadList[3]->sharedQuadState());
447 447
448 // The state should be transformed only once. 448 // The state should be transformed only once.
449 EXPECT_RECT_EQ(IntRect(30, 30, 50, 50), sharedState->clippedRectInTarget); 449 EXPECT_RECT_EQ(gfx::Rect(30, 30, 50, 50), sharedState->clippedRectInTarget);
450 WebTransformationMatrix expected; 450 WebTransformationMatrix expected;
451 expected.translate(30, 30); 451 expected.translate(30, 30);
452 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->quadTransform); 452 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->quadTransform);
453 } 453 }
454 454
455 } // namespace 455 } // namespace
OLDNEW
« no previous file with comments | « cc/debug_rect_history.cc ('k') | cc/draw_quad_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698