OLD | NEW |
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 "CCDelegatedRendererLayerImpl.h" | 7 #include "CCDelegatedRendererLayerImpl.h" |
8 | 8 |
9 #include "CCAppendQuadsData.h" | 9 #include "CCAppendQuadsData.h" |
10 #include "CCGeometryTestUtils.h" | 10 #include "CCGeometryTestUtils.h" |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 CCSharedQuadState* sharedState = quadSink.useSharedQuadState(CCSharedQuadSta
te::create(WebTransformationMatrix(), outputRect, outputRect, 1, false)); | 92 CCSharedQuadState* sharedState = quadSink.useSharedQuadState(CCSharedQuadSta
te::create(WebTransformationMatrix(), outputRect, outputRect, 1, false)); |
93 scoped_ptr<CCRenderPassDrawQuad> quad = CCRenderPassDrawQuad::create(sharedS
tate, outputRect, contributingPass->id(), false, 0, outputRect, 0, 0, 0, 0); | 93 scoped_ptr<CCRenderPassDrawQuad> quad = CCRenderPassDrawQuad::create(sharedS
tate, outputRect, contributingPass->id(), false, 0, outputRect, 0, 0, 0, 0); |
94 quadSink.append(quad.PassAs<CCDrawQuad>(), data); | 94 quadSink.append(quad.PassAs<CCDrawQuad>(), data); |
95 } | 95 } |
96 | 96 |
97 class CCDelegatedRendererLayerImplTestSimple : public CCDelegatedRendererLayerIm
plTest { | 97 class CCDelegatedRendererLayerImplTestSimple : public CCDelegatedRendererLayerIm
plTest { |
98 public: | 98 public: |
99 CCDelegatedRendererLayerImplTestSimple() | 99 CCDelegatedRendererLayerImplTestSimple() |
100 : CCDelegatedRendererLayerImplTest() | 100 : CCDelegatedRendererLayerImplTest() |
101 { | 101 { |
102 OwnPtr<CCSolidColorLayerImpl> rootLayer = CCSolidColorLayerImpl::create(
1); | 102 scoped_ptr<CCLayerImpl> rootLayer = CCSolidColorLayerImpl::create(1).Pas
sAs<CCLayerImpl>(); |
103 OwnPtr<CCSolidColorLayerImpl> layerBefore = CCSolidColorLayerImpl::creat
e(2); | 103 scoped_ptr<CCLayerImpl> layerBefore = CCSolidColorLayerImpl::create(2).P
assAs<CCLayerImpl>(); |
104 OwnPtr<CCSolidColorLayerImpl> layerAfter = CCSolidColorLayerImpl::create
(3); | 104 scoped_ptr<CCLayerImpl> layerAfter = CCSolidColorLayerImpl::create(3).Pa
ssAs<CCLayerImpl>(); |
105 OwnPtr<CCDelegatedRendererLayerImpl> delegatedRendererLayer = CCDelegate
dRendererLayerImpl::create(4); | 105 scoped_ptr<CCDelegatedRendererLayerImpl> delegatedRendererLayer = CCDele
gatedRendererLayerImpl::create(4); |
106 | 106 |
107 m_hostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100)); | 107 m_hostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100)); |
108 rootLayer->setBounds(IntSize(100, 100)); | 108 rootLayer->setBounds(IntSize(100, 100)); |
109 | 109 |
110 layerBefore->setPosition(IntPoint(20, 20)); | 110 layerBefore->setPosition(IntPoint(20, 20)); |
111 layerBefore->setBounds(IntSize(14, 14)); | 111 layerBefore->setBounds(IntSize(14, 14)); |
112 layerBefore->setContentBounds(IntSize(14, 14)); | 112 layerBefore->setContentBounds(IntSize(14, 14)); |
113 layerBefore->setDrawsContent(true); | 113 layerBefore->setDrawsContent(true); |
114 layerBefore->setForceRenderSurface(true); | 114 layerBefore->setForceRenderSurface(true); |
115 | 115 |
(...skipping 23 matching lines...) Expand all Loading... |
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(); |
147 | 147 |
148 // Force the delegated RenderPasses to come before the RenderPass from l
ayerAfter. | 148 // Force the delegated RenderPasses to come before the RenderPass from l
ayerAfter. |
149 layerAfter->addChild(delegatedRendererLayer.release()); | 149 layerAfter->addChild(delegatedRendererLayer.PassAs<CCLayerImpl>()); |
150 rootLayer->addChild(layerAfter.release()); | 150 rootLayer->addChild(layerAfter.Pass()); |
151 | 151 |
152 // Get the RenderPass generated by layerBefore to come before the delega
ted RenderPasses. | 152 // Get the RenderPass generated by layerBefore to come before the delega
ted RenderPasses. |
153 rootLayer->addChild(layerBefore.release()); | 153 rootLayer->addChild(layerBefore.Pass()); |
154 | 154 |
155 m_hostImpl->setRootLayer(rootLayer.release()); | 155 m_hostImpl->setRootLayer(rootLayer.Pass()); |
156 } | 156 } |
157 | 157 |
158 protected: | 158 protected: |
159 CCSolidColorLayerImpl* m_rootLayerPtr; | 159 CCLayerImpl* m_rootLayerPtr; |
160 CCSolidColorLayerImpl* m_layerBeforePtr; | 160 CCLayerImpl* m_layerBeforePtr; |
161 CCSolidColorLayerImpl* m_layerAfterPtr; | 161 CCLayerImpl* m_layerAfterPtr; |
162 CCDelegatedRendererLayerImpl* m_delegatedRendererLayerPtr; | 162 CCDelegatedRendererLayerImpl* m_delegatedRendererLayerPtr; |
163 }; | 163 }; |
164 | 164 |
165 TEST_F(CCDelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) | 165 TEST_F(CCDelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) |
166 { | 166 { |
167 CCLayerTreeHostImpl::FrameData frame; | 167 CCLayerTreeHostImpl::FrameData frame; |
168 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); | 168 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); |
169 m_hostImpl->drawLayers(frame); | 169 m_hostImpl->drawLayers(frame); |
170 m_hostImpl->didDrawAllLayers(frame); | 170 m_hostImpl->didDrawAllLayers(frame); |
171 | 171 |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[2]->quadList()[1]->quadTransform()); | 375 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[2]->quadList()[1]->quadTransform()); |
376 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); | 376 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); |
377 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[1]->quadList()[0]->quadTransform()); | 377 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[1]->quadList()[0]->quadTransform()); |
378 } | 378 } |
379 | 379 |
380 class CCDelegatedRendererLayerImplTestSharedData : public CCDelegatedRendererLay
erImplTest { | 380 class CCDelegatedRendererLayerImplTestSharedData : public CCDelegatedRendererLay
erImplTest { |
381 public: | 381 public: |
382 CCDelegatedRendererLayerImplTestSharedData() | 382 CCDelegatedRendererLayerImplTestSharedData() |
383 : CCDelegatedRendererLayerImplTest() | 383 : CCDelegatedRendererLayerImplTest() |
384 { | 384 { |
385 OwnPtr<CCLayerImpl> rootLayer = CCLayerImpl::create(1); | 385 scoped_ptr<CCLayerImpl> rootLayer = CCLayerImpl::create(1); |
386 OwnPtr<CCDelegatedRendererLayerImpl> delegatedRendererLayer = CCDelegate
dRendererLayerImpl::create(2); | 386 scoped_ptr<CCDelegatedRendererLayerImpl> delegatedRendererLayer = CCDele
gatedRendererLayerImpl::create(2); |
387 | 387 |
388 m_hostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100)); | 388 m_hostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100)); |
389 rootLayer->setBounds(IntSize(100, 100)); | 389 rootLayer->setBounds(IntSize(100, 100)); |
390 | 390 |
391 delegatedRendererLayer->setPosition(IntPoint(20, 20)); | 391 delegatedRendererLayer->setPosition(IntPoint(20, 20)); |
392 delegatedRendererLayer->setBounds(IntSize(20, 20)); | 392 delegatedRendererLayer->setBounds(IntSize(20, 20)); |
393 delegatedRendererLayer->setContentBounds(IntSize(20, 20)); | 393 delegatedRendererLayer->setContentBounds(IntSize(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); |
(...skipping 10 matching lines...) Expand all Loading... |
407 quadSink.append(CCSolidColorDrawQuad::create(sharedState, IntRect(10, 0,
10, 10), 3u).PassAs<CCDrawQuad>(), data); | 407 quadSink.append(CCSolidColorDrawQuad::create(sharedState, IntRect(10, 0,
10, 10), 3u).PassAs<CCDrawQuad>(), data); |
408 quadSink.append(CCSolidColorDrawQuad::create(sharedState, IntRect(10, 10
, 10, 10), 4u).PassAs<CCDrawQuad>(), data); | 408 quadSink.append(CCSolidColorDrawQuad::create(sharedState, IntRect(10, 10
, 10, 10), 4u).PassAs<CCDrawQuad>(), 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.release()); | 417 rootLayer->addChild(delegatedRendererLayer.PassAs<CCLayerImpl>()); |
418 | 418 |
419 m_hostImpl->setRootLayer(rootLayer.release()); | 419 m_hostImpl->setRootLayer(rootLayer.Pass()); |
420 } | 420 } |
421 | 421 |
422 protected: | 422 protected: |
423 CCLayerImpl* m_rootLayerPtr; | 423 CCLayerImpl* m_rootLayerPtr; |
424 CCDelegatedRendererLayerImpl* m_delegatedRendererLayerPtr; | 424 CCDelegatedRendererLayerImpl* m_delegatedRendererLayerPtr; |
425 }; | 425 }; |
426 | 426 |
427 TEST_F(CCDelegatedRendererLayerImplTestSharedData, SharedData) | 427 TEST_F(CCDelegatedRendererLayerImplTestSharedData, SharedData) |
428 { | 428 { |
429 CCLayerTreeHostImpl::FrameData frame; | 429 CCLayerTreeHostImpl::FrameData frame; |
(...skipping 15 matching lines...) Expand all Loading... |
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(IntRect(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 |
OLD | NEW |