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 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
374 DelegatedRendererLayerImplTestSharedData() | 374 DelegatedRendererLayerImplTestSharedData() |
375 : DelegatedRendererLayerImplTest() | 375 : DelegatedRendererLayerImplTest() |
376 { | 376 { |
377 scoped_ptr<LayerImpl> rootLayer = LayerImpl::create(m_hostImpl->activeTr
ee(), 1); | 377 scoped_ptr<LayerImpl> rootLayer = LayerImpl::create(m_hostImpl->activeTr
ee(), 1); |
378 scoped_ptr<DelegatedRendererLayerImpl> delegatedRendererLayer = Delegate
dRendererLayerImpl::create(m_hostImpl->activeTree(), 2); | 378 scoped_ptr<DelegatedRendererLayerImpl> delegatedRendererLayer = Delegate
dRendererLayerImpl::create(m_hostImpl->activeTree(), 2); |
379 | 379 |
380 m_hostImpl->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); | 380 m_hostImpl->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); |
381 rootLayer->setBounds(gfx::Size(100, 100)); | 381 rootLayer->setBounds(gfx::Size(100, 100)); |
382 | 382 |
383 delegatedRendererLayer->setPosition(gfx::Point(20, 20)); | 383 delegatedRendererLayer->setPosition(gfx::Point(20, 20)); |
384 delegatedRendererLayer->setBounds(gfx::Size(20, 20)); | 384 delegatedRendererLayer->setBounds(gfx::Size(30, 30)); |
385 delegatedRendererLayer->setContentBounds(gfx::Size(20, 20)); | 385 delegatedRendererLayer->setContentBounds(gfx::Size(30, 30)); |
386 delegatedRendererLayer->setDrawsContent(true); | 386 delegatedRendererLayer->setDrawsContent(true); |
387 gfx::Transform transform; | 387 gfx::Transform transform; |
388 transform.Translate(10, 10); | 388 transform.Scale(2.0, 2.0); |
| 389 transform.Translate(8.0, 8.0); |
389 delegatedRendererLayer->setTransform(transform); | 390 delegatedRendererLayer->setTransform(transform); |
390 | 391 |
391 ScopedPtrVector<RenderPass> delegatedRenderPasses; | 392 ScopedPtrVector<RenderPass> delegatedRenderPasses; |
392 gfx::Rect passRect(0, 0, 50, 50); | 393 gfx::Rect passRect(0, 0, 50, 50); |
| 394 gfx::Transform passTransform; |
| 395 passTransform.Scale(1.5, 1.5); |
| 396 passTransform.Translate(7.0, 7.0); |
| 397 |
393 TestRenderPass* pass = addRenderPass(delegatedRenderPasses, RenderPass::
Id(9, 6), passRect, gfx::Transform()); | 398 TestRenderPass* pass = addRenderPass(delegatedRenderPasses, RenderPass::
Id(9, 6), passRect, gfx::Transform()); |
394 MockQuadCuller quadSink(pass->quad_list, pass->shared_quad_state_list); | 399 MockQuadCuller quadSink(pass->quad_list, pass->shared_quad_state_list); |
395 AppendQuadsData data(pass->id); | 400 AppendQuadsData data(pass->id); |
396 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadSta
te::Create()); | 401 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadSta
te::Create()); |
397 sharedState->SetAll(gfx::Transform(), passRect, passRect, passRect, fals
e, 1); | 402 sharedState->SetAll(passTransform, passRect, passRect, passRect, false,
1); |
398 scoped_ptr<SolidColorDrawQuad> colorQuad; | 403 scoped_ptr<SolidColorDrawQuad> colorQuad; |
399 | 404 |
400 colorQuad = SolidColorDrawQuad::Create(); | 405 colorQuad = SolidColorDrawQuad::Create(); |
401 colorQuad->SetNew(sharedState, gfx::Rect(0, 0, 10, 10), 1u); | 406 colorQuad->SetNew(sharedState, gfx::Rect(0, 0, 10, 10), 1u); |
402 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); | 407 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); |
403 | 408 |
404 colorQuad = SolidColorDrawQuad::Create(); | 409 colorQuad = SolidColorDrawQuad::Create(); |
405 colorQuad->SetNew(sharedState, gfx::Rect(0, 10, 10, 10), 2u); | 410 colorQuad->SetNew(sharedState, gfx::Rect(0, 10, 10, 10), 2u); |
406 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); | 411 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); |
407 | 412 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 const QuadList& quadList = frame.renderPasses[0]->quad_list; | 448 const QuadList& quadList = frame.renderPasses[0]->quad_list; |
444 ASSERT_EQ(4u, quadList.size()); | 449 ASSERT_EQ(4u, quadList.size()); |
445 | 450 |
446 // All quads should share the same state. | 451 // All quads should share the same state. |
447 const SharedQuadState* sharedState = quadList[0]->shared_quad_state; | 452 const SharedQuadState* sharedState = quadList[0]->shared_quad_state; |
448 EXPECT_EQ(sharedState, quadList[1]->shared_quad_state); | 453 EXPECT_EQ(sharedState, quadList[1]->shared_quad_state); |
449 EXPECT_EQ(sharedState, quadList[2]->shared_quad_state); | 454 EXPECT_EQ(sharedState, quadList[2]->shared_quad_state); |
450 EXPECT_EQ(sharedState, quadList[3]->shared_quad_state); | 455 EXPECT_EQ(sharedState, quadList[3]->shared_quad_state); |
451 | 456 |
452 // The state should be transformed only once. | 457 // The state should be transformed only once. |
453 EXPECT_RECT_EQ(gfx::Rect(30, 30, 50, 50), sharedState->clipped_rect_in_targe
t); | 458 // The x/y values are: position (20) + transform (8 * 2) = 36 |
454 EXPECT_RECT_EQ(gfx::Rect(30, 30, 50, 50), sharedState->clip_rect); | 459 // 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->clip_rect); |
455 gfx::Transform expected; | 462 gfx::Transform expected; |
456 expected.Translate(30, 30); | 463 // The position (20) - the width / scale (30 / 2) = 20 - 15 = 5 |
| 464 expected.Translate(5.0, 5.0); |
| 465 expected.Scale(2.0, 2.0); |
| 466 expected.Translate(8.0, 8.0); |
| 467 expected.Scale(1.5, 1.5); |
| 468 expected.Translate(7.0, 7.0); |
457 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->content_to_target_tra
nsform); | 469 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->content_to_target_tra
nsform); |
458 | 470 |
459 m_hostImpl->drawLayers(frame); | 471 m_hostImpl->drawLayers(frame); |
460 m_hostImpl->didDrawAllLayers(frame); | 472 m_hostImpl->didDrawAllLayers(frame); |
461 } | 473 } |
462 | 474 |
463 } // namespace | 475 } // namespace |
464 } // namespace cc | 476 } // namespace cc |
OLD | NEW |