| 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 "cc/delegated_renderer_layer_impl.h" | 5 #include "cc/delegated_renderer_layer_impl.h" |
| 6 | 6 |
| 7 #include "cc/append_quads_data.h" | 7 #include "cc/append_quads_data.h" |
| 8 #include "cc/layer_tree_host_impl.h" | 8 #include "cc/layer_tree_host_impl.h" |
| 9 #include "cc/layer_tree_impl.h" | 9 #include "cc/layer_tree_impl.h" |
| 10 #include "cc/quad_sink.h" | 10 #include "cc/quad_sink.h" |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 delegatedRendererLayer->setTransform(transform); | 83 delegatedRendererLayer->setTransform(transform); |
| 84 | 84 |
| 85 ScopedPtrVector<RenderPass> delegatedRenderPasses; | 85 ScopedPtrVector<RenderPass> delegatedRenderPasses; |
| 86 TestRenderPass* pass1 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 6), gfx::Rect(6, 6, 6, 6), gfx::Transform()); | 86 TestRenderPass* pass1 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 6), gfx::Rect(6, 6, 6, 6), gfx::Transform()); |
| 87 addQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u); | 87 addQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u); |
| 88 TestRenderPass* pass2 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 7), gfx::Rect(7, 7, 7, 7), gfx::Transform()); | 88 TestRenderPass* pass2 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 7), gfx::Rect(7, 7, 7, 7), gfx::Transform()); |
| 89 addQuad(pass2, gfx::Rect(0, 0, 7, 7), 22u); | 89 addQuad(pass2, gfx::Rect(0, 0, 7, 7), 22u); |
| 90 addRenderPassQuad(pass2, pass1); | 90 addRenderPassQuad(pass2, pass1); |
| 91 TestRenderPass* pass3 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 8), gfx::Rect(8, 8, 8, 8), gfx::Transform()); | 91 TestRenderPass* pass3 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 8), gfx::Rect(8, 8, 8, 8), gfx::Transform()); |
| 92 addRenderPassQuad(pass3, pass2); | 92 addRenderPassQuad(pass3, pass2); |
| 93 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses); | 93 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses, gfx::Size
(10, 10)); |
| 94 | 94 |
| 95 // The RenderPasses should be taken by the layer. | 95 // The RenderPasses should be taken by the layer. |
| 96 EXPECT_EQ(0u, delegatedRenderPasses.size()); | 96 EXPECT_EQ(0u, delegatedRenderPasses.size()); |
| 97 | 97 |
| 98 m_rootLayerPtr = rootLayer.get(); | 98 m_rootLayerPtr = rootLayer.get(); |
| 99 m_layerBeforePtr = layerBefore.get(); | 99 m_layerBeforePtr = layerBefore.get(); |
| 100 m_layerAfterPtr = layerAfter.get(); | 100 m_layerAfterPtr = layerAfter.get(); |
| 101 m_delegatedRendererLayerPtr = delegatedRendererLayer.get(); | 101 m_delegatedRendererLayerPtr = delegatedRendererLayer.get(); |
| 102 | 102 |
| 103 // Force the delegated RenderPasses to come before the RenderPass from l
ayerAfter. | 103 // Force the delegated RenderPasses to come before the RenderPass from l
ayerAfter. |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); | 411 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); |
| 412 | 412 |
| 413 colorQuad = SolidColorDrawQuad::Create(); | 413 colorQuad = SolidColorDrawQuad::Create(); |
| 414 colorQuad->SetNew(sharedState, gfx::Rect(10, 0, 10, 10), 3u); | 414 colorQuad->SetNew(sharedState, gfx::Rect(10, 0, 10, 10), 3u); |
| 415 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); | 415 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); |
| 416 | 416 |
| 417 colorQuad = SolidColorDrawQuad::Create(); | 417 colorQuad = SolidColorDrawQuad::Create(); |
| 418 colorQuad->SetNew(sharedState, gfx::Rect(10, 10, 10, 10), 4u); | 418 colorQuad->SetNew(sharedState, gfx::Rect(10, 10, 10, 10), 4u); |
| 419 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); | 419 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); |
| 420 | 420 |
| 421 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses); | 421 delegatedRendererLayer->setRenderPasses( |
| 422 delegatedRenderPasses, gfx::Size(20, 20)); |
| 422 | 423 |
| 423 // The RenderPasses should be taken by the layer. | 424 // The RenderPasses should be taken by the layer. |
| 424 EXPECT_EQ(0u, delegatedRenderPasses.size()); | 425 EXPECT_EQ(0u, delegatedRenderPasses.size()); |
| 425 | 426 |
| 426 m_rootLayerPtr = rootLayer.get(); | 427 m_rootLayerPtr = rootLayer.get(); |
| 427 m_delegatedRendererLayerPtr = delegatedRendererLayer.get(); | 428 m_delegatedRendererLayerPtr = delegatedRendererLayer.get(); |
| 428 | 429 |
| 429 rootLayer->addChild(delegatedRendererLayer.PassAs<LayerImpl>()); | 430 rootLayer->addChild(delegatedRendererLayer.PassAs<LayerImpl>()); |
| 430 | 431 |
| 431 m_hostImpl->activeTree()->SetRootLayer(rootLayer.Pass()); | 432 m_hostImpl->activeTree()->SetRootLayer(rootLayer.Pass()); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 453 EXPECT_EQ(sharedState, quadList[1]->shared_quad_state); | 454 EXPECT_EQ(sharedState, quadList[1]->shared_quad_state); |
| 454 EXPECT_EQ(sharedState, quadList[2]->shared_quad_state); | 455 EXPECT_EQ(sharedState, quadList[2]->shared_quad_state); |
| 455 EXPECT_EQ(sharedState, quadList[3]->shared_quad_state); | 456 EXPECT_EQ(sharedState, quadList[3]->shared_quad_state); |
| 456 | 457 |
| 457 // The state should be transformed only once. | 458 // The state should be transformed only once. |
| 458 // The x/y values are: position (20) + transform (8 * 2) = 36 | 459 // The x/y values are: position (20) + transform (8 * 2) = 36 |
| 459 // 36 - (width / 2) = 36 - 30 / 2 = 21 | 460 // 36 - (width / 2) = 36 - 30 / 2 = 21 |
| 460 EXPECT_RECT_EQ(gfx::Rect(21, 21, 100, 100), sharedState->clipped_rect_in_tar
get); | 461 EXPECT_RECT_EQ(gfx::Rect(21, 21, 100, 100), sharedState->clipped_rect_in_tar
get); |
| 461 EXPECT_RECT_EQ(gfx::Rect(21, 21, 100, 100), sharedState->clip_rect); | 462 EXPECT_RECT_EQ(gfx::Rect(21, 21, 100, 100), sharedState->clip_rect); |
| 462 gfx::Transform expected; | 463 gfx::Transform expected; |
| 464 // This is the transform from the layer's space to its target. |
| 463 // The position (20) - the width / scale (30 / 2) = 20 - 15 = 5 | 465 // The position (20) - the width / scale (30 / 2) = 20 - 15 = 5 |
| 464 expected.Translate(5.0, 5.0); | 466 expected.Translate(5.0, 5.0); |
| 465 expected.Scale(2.0, 2.0); | 467 expected.Scale(2.0, 2.0); |
| 466 expected.Translate(8.0, 8.0); | 468 expected.Translate(8.0, 8.0); |
| 469 // The frame has size 20x20 but the layer's bounds are 30x30. |
| 470 expected.Scale(20.0 / 30.0, 20.0 / 30.0); |
| 471 // This is the transform within the source frame. |
| 467 expected.Scale(1.5, 1.5); | 472 expected.Scale(1.5, 1.5); |
| 468 expected.Translate(7.0, 7.0); | 473 expected.Translate(7.0, 7.0); |
| 469 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->content_to_target_tra
nsform); | 474 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->content_to_target_tra
nsform); |
| 470 | 475 |
| 471 m_hostImpl->drawLayers(frame); | 476 m_hostImpl->drawLayers(frame); |
| 472 m_hostImpl->didDrawAllLayers(frame); | 477 m_hostImpl->didDrawAllLayers(frame); |
| 473 } | 478 } |
| 474 | 479 |
| 475 } // namespace | 480 } // namespace |
| 476 } // namespace cc | 481 } // namespace cc |
| OLD | NEW |