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

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

Powered by Google App Engine
This is Rietveld 408576698