| 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/layers/delegated_renderer_layer_impl.h" | 5 #include "cc/layers/delegated_renderer_layer_impl.h" |
| 6 | 6 |
| 7 #include "cc/base/scoped_ptr_vector.h" | 7 #include "cc/base/scoped_ptr_vector.h" |
| 8 #include "cc/layers/solid_color_layer_impl.h" | 8 #include "cc/layers/solid_color_layer_impl.h" |
| 9 #include "cc/quads/render_pass_draw_quad.h" | 9 #include "cc/quads/render_pass_draw_quad.h" |
| 10 #include "cc/quads/solid_color_draw_quad.h" | 10 #include "cc/quads/solid_color_draw_quad.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 gfx::Rect(7, 7, 7, 7), | 100 gfx::Rect(7, 7, 7, 7), |
| 101 gfx::Transform(1, 0, 0, 1, 7, 8)); | 101 gfx::Transform(1, 0, 0, 1, 7, 8)); |
| 102 AddQuad(pass2, gfx::Rect(0, 0, 7, 7), 22u); | 102 AddQuad(pass2, gfx::Rect(0, 0, 7, 7), 22u); |
| 103 AddRenderPassQuad(pass2, pass1); | 103 AddRenderPassQuad(pass2, pass1); |
| 104 TestRenderPass* pass3 = AddRenderPass(&delegated_render_passes, | 104 TestRenderPass* pass3 = AddRenderPass(&delegated_render_passes, |
| 105 RenderPassId(9, 8), | 105 RenderPassId(9, 8), |
| 106 gfx::Rect(0, 0, 8, 8), | 106 gfx::Rect(0, 0, 8, 8), |
| 107 gfx::Transform(1, 0, 0, 1, 9, 10)); | 107 gfx::Transform(1, 0, 0, 1, 9, 10)); |
| 108 AddRenderPassQuad(pass3, pass2); | 108 AddRenderPassQuad(pass3, pass2); |
| 109 delegated_renderer_layer->SetFrameDataForRenderPasses( | 109 delegated_renderer_layer->SetFrameDataForRenderPasses( |
| 110 1.f, &delegated_render_passes); | 110 1.f, delegated_render_passes); |
| 111 | |
| 112 // The RenderPasses should be taken by the layer. | |
| 113 EXPECT_EQ(0u, delegated_render_passes.size()); | |
| 114 | 111 |
| 115 root_layer_ = root_layer.get(); | 112 root_layer_ = root_layer.get(); |
| 116 layer_before_ = layer_before.get(); | 113 layer_before_ = layer_before.get(); |
| 117 layer_after_ = layer_after.get(); | 114 layer_after_ = layer_after.get(); |
| 118 delegated_renderer_layer_ = delegated_renderer_layer.get(); | 115 delegated_renderer_layer_ = delegated_renderer_layer.get(); |
| 119 | 116 |
| 120 // Force the delegated RenderPasses to come before the RenderPass from | 117 // Force the delegated RenderPasses to come before the RenderPass from |
| 121 // layer_after. | 118 // layer_after. |
| 122 layer_after->AddChild(delegated_renderer_layer.Pass()); | 119 layer_after->AddChild(delegated_renderer_layer.Pass()); |
| 123 root_layer->AddChild(layer_after.Pass()); | 120 root_layer->AddChild(layer_after.Pass()); |
| (...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 570 false); | 567 false); |
| 571 | 568 |
| 572 color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 569 color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 573 color_quad->SetNew(shared_quad_state, | 570 color_quad->SetNew(shared_quad_state, |
| 574 gfx::Rect(10, 10, 10, 10), | 571 gfx::Rect(10, 10, 10, 10), |
| 575 gfx::Rect(10, 10, 10, 10), | 572 gfx::Rect(10, 10, 10, 10), |
| 576 4u, | 573 4u, |
| 577 false); | 574 false); |
| 578 | 575 |
| 579 delegated_renderer_layer->SetFrameDataForRenderPasses( | 576 delegated_renderer_layer->SetFrameDataForRenderPasses( |
| 580 delegated_device_scale_factor_, &delegated_render_passes); | 577 delegated_device_scale_factor_, delegated_render_passes); |
| 581 | |
| 582 // The RenderPasses should be taken by the layer. | |
| 583 EXPECT_EQ(0u, delegated_render_passes.size()); | |
| 584 | 578 |
| 585 root_layer_ = root_layer.get(); | 579 root_layer_ = root_layer.get(); |
| 586 delegated_renderer_layer_ = delegated_renderer_layer.get(); | 580 delegated_renderer_layer_ = delegated_renderer_layer.get(); |
| 587 | 581 |
| 588 root_layer->AddChild(delegated_renderer_layer.Pass()); | 582 root_layer->AddChild(delegated_renderer_layer.Pass()); |
| 589 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); | 583 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); |
| 590 } | 584 } |
| 591 | 585 |
| 592 void VerifyRenderPasses( | 586 void VerifyRenderPasses( |
| 593 const LayerTreeHostImpl::FrameData& frame, | 587 const LayerTreeHostImpl::FrameData& frame, |
| (...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1006 false); | 1000 false); |
| 1007 | 1001 |
| 1008 color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1002 color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1009 color_quad->SetNew(shared_quad_state, | 1003 color_quad->SetNew(shared_quad_state, |
| 1010 gfx::Rect(10, 10, 10, 10), | 1004 gfx::Rect(10, 10, 10, 10), |
| 1011 gfx::Rect(10, 10, 10, 10), | 1005 gfx::Rect(10, 10, 10, 10), |
| 1012 4u, | 1006 4u, |
| 1013 false); | 1007 false); |
| 1014 | 1008 |
| 1015 delegated_renderer_layer->SetFrameDataForRenderPasses( | 1009 delegated_renderer_layer->SetFrameDataForRenderPasses( |
| 1016 1.f, &delegated_render_passes); | 1010 1.f, delegated_render_passes); |
| 1017 | |
| 1018 // The RenderPasses should be taken by the layer. | |
| 1019 EXPECT_EQ(0u, delegated_render_passes.size()); | |
| 1020 | 1011 |
| 1021 root_layer_ = root_layer.get(); | 1012 root_layer_ = root_layer.get(); |
| 1022 delegated_renderer_layer_ = delegated_renderer_layer.get(); | 1013 delegated_renderer_layer_ = delegated_renderer_layer.get(); |
| 1023 | 1014 |
| 1024 if (clip_delegated_renderer_layer_) { | 1015 if (clip_delegated_renderer_layer_) { |
| 1025 gfx::Rect clip_rect(21, 27, 23, 21); | 1016 gfx::Rect clip_rect(21, 27, 23, 21); |
| 1026 | 1017 |
| 1027 clip_layer->SetPosition(clip_rect.origin()); | 1018 clip_layer->SetPosition(clip_rect.origin()); |
| 1028 clip_layer->SetBounds(clip_rect.size()); | 1019 clip_layer->SetBounds(clip_rect.size()); |
| 1029 clip_layer->SetContentBounds(clip_rect.size()); | 1020 clip_layer->SetContentBounds(clip_rect.size()); |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1310 scoped_ptr<TestRenderPass> missing_pass(TestRenderPass::Create()); | 1301 scoped_ptr<TestRenderPass> missing_pass(TestRenderPass::Create()); |
| 1311 missing_pass->SetNew(RenderPassId(9, 7), | 1302 missing_pass->SetNew(RenderPassId(9, 7), |
| 1312 gfx::Rect(7, 7, 7, 7), | 1303 gfx::Rect(7, 7, 7, 7), |
| 1313 gfx::Rect(7, 7, 7, 7), | 1304 gfx::Rect(7, 7, 7, 7), |
| 1314 gfx::Transform()); | 1305 gfx::Transform()); |
| 1315 | 1306 |
| 1316 // But a render pass quad refers to it. | 1307 // But a render pass quad refers to it. |
| 1317 AddRenderPassQuad(pass1, missing_pass.get()); | 1308 AddRenderPassQuad(pass1, missing_pass.get()); |
| 1318 | 1309 |
| 1319 delegated_renderer_layer->SetFrameDataForRenderPasses( | 1310 delegated_renderer_layer->SetFrameDataForRenderPasses( |
| 1320 1.f, &delegated_render_passes); | 1311 1.f, delegated_render_passes); |
| 1321 | |
| 1322 // The RenderPasses should be taken by the layer. | |
| 1323 EXPECT_EQ(0u, delegated_render_passes.size()); | |
| 1324 | 1312 |
| 1325 root_layer->AddChild(delegated_renderer_layer.Pass()); | 1313 root_layer->AddChild(delegated_renderer_layer.Pass()); |
| 1326 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); | 1314 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); |
| 1327 | 1315 |
| 1328 LayerTreeHostImpl::FrameData frame; | 1316 LayerTreeHostImpl::FrameData frame; |
| 1329 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 1317 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 1330 | 1318 |
| 1331 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. | 1319 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. |
| 1332 ASSERT_EQ(1u, frame.render_passes.size()); | 1320 ASSERT_EQ(1u, frame.render_passes.size()); |
| 1333 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 1321 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1372 pass1_id, | 1360 pass1_id, |
| 1373 gfx::Rect(layer_size), | 1361 gfx::Rect(layer_size), |
| 1374 gfx::Transform()); | 1362 gfx::Transform()); |
| 1375 AddRenderPassQuad(pass1, | 1363 AddRenderPassQuad(pass1, |
| 1376 pass2, | 1364 pass2, |
| 1377 0, | 1365 0, |
| 1378 FilterOperations(), | 1366 FilterOperations(), |
| 1379 transform, | 1367 transform, |
| 1380 SkXfermode::kSrcOver_Mode); | 1368 SkXfermode::kSrcOver_Mode); |
| 1381 delegated_renderer_layer_impl->SetFrameDataForRenderPasses( | 1369 delegated_renderer_layer_impl->SetFrameDataForRenderPasses( |
| 1382 1.f, &delegated_render_passes); | 1370 1.f, delegated_render_passes); |
| 1383 | 1371 |
| 1384 impl.CalcDrawProps(viewport_size); | 1372 impl.CalcDrawProps(viewport_size); |
| 1385 | 1373 |
| 1386 { | 1374 { |
| 1387 SCOPED_TRACE("No occlusion"); | 1375 SCOPED_TRACE("No occlusion"); |
| 1388 gfx::Rect occluded; | 1376 gfx::Rect occluded; |
| 1389 | 1377 |
| 1390 { | 1378 { |
| 1391 SCOPED_TRACE("Root render pass"); | 1379 SCOPED_TRACE("Root render pass"); |
| 1392 impl.AppendQuadsForPassWithOcclusion( | 1380 impl.AppendQuadsForPassWithOcclusion(delegated_renderer_layer_impl, pass1, |
| 1393 delegated_renderer_layer_impl, pass1_id, occluded); | 1381 occluded); |
| 1394 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), | 1382 LayerTestCommon::VerifyQuadsExactlyCoverRect(pass1->quad_list, |
| 1395 quad_screen_rect); | 1383 quad_screen_rect); |
| 1396 ASSERT_EQ(1u, impl.quad_list().size()); | 1384 ASSERT_EQ(1u, pass1->quad_list.size()); |
| 1397 EXPECT_EQ(DrawQuad::RENDER_PASS, impl.quad_list().front()->material); | 1385 EXPECT_EQ(DrawQuad::RENDER_PASS, pass1->quad_list.front()->material); |
| 1398 } | 1386 } |
| 1399 { | 1387 { |
| 1400 SCOPED_TRACE("Contributing render pass"); | 1388 SCOPED_TRACE("Contributing render pass"); |
| 1401 impl.AppendQuadsForPassWithOcclusion( | 1389 impl.AppendQuadsForPassWithOcclusion(delegated_renderer_layer_impl, pass2, |
| 1402 delegated_renderer_layer_impl, pass2_id, occluded); | 1390 occluded); |
| 1403 LayerTestCommon::VerifyQuadsExactlyCoverRect( | 1391 LayerTestCommon::VerifyQuadsExactlyCoverRect( |
| 1404 impl.quad_list(), gfx::Rect(quad_screen_rect.size())); | 1392 pass2->quad_list, gfx::Rect(quad_screen_rect.size())); |
| 1405 ASSERT_EQ(1u, impl.quad_list().size()); | 1393 ASSERT_EQ(1u, pass2->quad_list.size()); |
| 1406 EXPECT_EQ(DrawQuad::SOLID_COLOR, impl.quad_list().front()->material); | 1394 EXPECT_EQ(DrawQuad::SOLID_COLOR, pass2->quad_list.front()->material); |
| 1407 } | 1395 } |
| 1408 } | 1396 } |
| 1409 | 1397 |
| 1410 { | 1398 { |
| 1411 SCOPED_TRACE("Full occlusion"); | 1399 SCOPED_TRACE("Full occlusion"); |
| 1412 { | 1400 { |
| 1413 gfx::Rect occluded(delegated_renderer_layer_impl->visible_content_rect()); | 1401 gfx::Rect occluded(delegated_renderer_layer_impl->visible_content_rect()); |
| 1414 | 1402 |
| 1415 SCOPED_TRACE("Root render pass"); | 1403 SCOPED_TRACE("Root render pass"); |
| 1416 impl.AppendQuadsForPassWithOcclusion( | 1404 impl.AppendQuadsForPassWithOcclusion(delegated_renderer_layer_impl, pass1, |
| 1417 delegated_renderer_layer_impl, pass1_id, occluded); | 1405 occluded); |
| 1418 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), | 1406 LayerTestCommon::VerifyQuadsExactlyCoverRect(pass1->quad_list, |
| 1419 gfx::Rect()); | 1407 gfx::Rect()); |
| 1420 EXPECT_EQ(impl.quad_list().size(), 0u); | 1408 EXPECT_EQ(pass1->quad_list.size(), 0u); |
| 1421 } | 1409 } |
| 1422 { | 1410 { |
| 1423 gfx::Rect occluded(delegated_renderer_layer_impl->visible_content_rect()); | 1411 gfx::Rect occluded(delegated_renderer_layer_impl->visible_content_rect()); |
| 1424 | 1412 |
| 1425 SCOPED_TRACE("Contributing render pass"); | 1413 SCOPED_TRACE("Contributing render pass"); |
| 1426 impl.AppendQuadsForPassWithOcclusion( | 1414 impl.AppendQuadsForPassWithOcclusion(delegated_renderer_layer_impl, pass2, |
| 1427 delegated_renderer_layer_impl, pass2_id, occluded); | 1415 occluded); |
| 1428 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), | 1416 LayerTestCommon::VerifyQuadsExactlyCoverRect(pass2->quad_list, |
| 1429 gfx::Rect()); | 1417 gfx::Rect()); |
| 1430 EXPECT_EQ(impl.quad_list().size(), 0u); | 1418 EXPECT_EQ(pass2->quad_list.size(), 0u); |
| 1431 } | 1419 } |
| 1432 } | 1420 } |
| 1433 | 1421 |
| 1434 { | 1422 { |
| 1435 SCOPED_TRACE("Partial occlusion"); | 1423 SCOPED_TRACE("Partial occlusion"); |
| 1436 { | 1424 { |
| 1437 gfx::Rect occlusion_in_root_target(0, 0, 500, 1000); | 1425 gfx::Rect occlusion_in_root_target(0, 0, 500, 1000); |
| 1438 | 1426 |
| 1439 SCOPED_TRACE("Root render pass"); | 1427 SCOPED_TRACE("Root render pass"); |
| 1440 impl.AppendQuadsForPassWithOcclusion( | 1428 impl.AppendQuadsForPassWithOcclusion(delegated_renderer_layer_impl, pass1, |
| 1441 delegated_renderer_layer_impl, pass1_id, occlusion_in_root_target); | 1429 occlusion_in_root_target); |
| 1442 size_t partially_occluded_count = 0; | 1430 size_t partially_occluded_count = 0; |
| 1443 LayerTestCommon::VerifyQuadsAreOccluded(impl.quad_list(), | 1431 LayerTestCommon::VerifyQuadsAreOccluded(pass1->quad_list, |
| 1444 occlusion_in_root_target, | 1432 occlusion_in_root_target, |
| 1445 &partially_occluded_count); | 1433 &partially_occluded_count); |
| 1446 // The layer outputs one quad, which is partially occluded. | 1434 // The layer outputs one quad, which is partially occluded. |
| 1447 EXPECT_EQ(1u, impl.quad_list().size()); | 1435 EXPECT_EQ(1u, pass1->quad_list.size()); |
| 1448 EXPECT_EQ(1u, partially_occluded_count); | 1436 EXPECT_EQ(1u, partially_occluded_count); |
| 1449 } | 1437 } |
| 1450 { | 1438 { |
| 1451 gfx::Rect occlusion_in_root_target(0, 0, 500, 1000); | 1439 gfx::Rect occlusion_in_root_target(0, 0, 500, 1000); |
| 1452 // Move the occlusion to where it is in the contributing surface. | 1440 // Move the occlusion to where it is in the contributing surface. |
| 1453 gfx::Rect occlusion_in_target_of_delegated_quad = | 1441 gfx::Rect occlusion_in_target_of_delegated_quad = |
| 1454 occlusion_in_root_target - quad_screen_rect.OffsetFromOrigin(); | 1442 occlusion_in_root_target - quad_screen_rect.OffsetFromOrigin(); |
| 1455 | 1443 |
| 1456 SCOPED_TRACE("Contributing render pass"); | 1444 SCOPED_TRACE("Contributing render pass"); |
| 1457 impl.AppendQuadsForPassWithOcclusion( | 1445 impl.AppendQuadsForPassWithOcclusion(delegated_renderer_layer_impl, pass2, |
| 1458 delegated_renderer_layer_impl, pass2_id, occlusion_in_root_target); | 1446 occlusion_in_root_target); |
| 1459 size_t partially_occluded_count = 0; | 1447 size_t partially_occluded_count = 0; |
| 1460 LayerTestCommon::VerifyQuadsAreOccluded( | 1448 LayerTestCommon::VerifyQuadsAreOccluded( |
| 1461 impl.quad_list(), | 1449 pass2->quad_list, occlusion_in_target_of_delegated_quad, |
| 1462 occlusion_in_target_of_delegated_quad, | |
| 1463 &partially_occluded_count); | 1450 &partially_occluded_count); |
| 1464 // The layer outputs one quad, which is partially occluded. | 1451 // The layer outputs one quad, which is partially occluded. |
| 1465 EXPECT_EQ(1u, impl.quad_list().size()); | 1452 EXPECT_EQ(1u, pass2->quad_list.size()); |
| 1466 EXPECT_EQ(1u, partially_occluded_count); | 1453 EXPECT_EQ(1u, partially_occluded_count); |
| 1467 // The quad in the contributing surface is at (211,300) in the root. | 1454 // The quad in the contributing surface is at (211,300) in the root. |
| 1468 // The occlusion extends to 500 in the x-axis, pushing the left of the | 1455 // The occlusion extends to 500 in the x-axis, pushing the left of the |
| 1469 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad. | 1456 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad. |
| 1470 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(), | 1457 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(), |
| 1471 impl.quad_list().front()->visible_rect.ToString()); | 1458 pass2->quad_list.front()->visible_rect.ToString()); |
| 1472 } | 1459 } |
| 1473 { | 1460 { |
| 1474 gfx::Rect occlusion_in_root_target(0, 0, 500, 1000); | 1461 gfx::Rect occlusion_in_root_target(0, 0, 500, 1000); |
| 1475 // Move the occlusion to where it is in the contributing surface. | 1462 // Move the occlusion to where it is in the contributing surface. |
| 1476 gfx::Rect occlusion_in_target_of_delegated_quad = | 1463 gfx::Rect occlusion_in_target_of_delegated_quad = |
| 1477 occlusion_in_root_target - quad_screen_rect.OffsetFromOrigin(); | 1464 occlusion_in_root_target - quad_screen_rect.OffsetFromOrigin(); |
| 1478 | 1465 |
| 1479 SCOPED_TRACE("Contributing render pass with transformed root"); | 1466 SCOPED_TRACE("Contributing render pass with transformed root"); |
| 1480 | 1467 |
| 1481 gfx::Transform layer_transform; | 1468 gfx::Transform layer_transform; |
| 1482 layer_transform.Translate(11.0, 0.0); | 1469 layer_transform.Translate(11.0, 0.0); |
| 1483 delegated_renderer_layer_impl->SetTransform(layer_transform); | 1470 delegated_renderer_layer_impl->SetTransform(layer_transform); |
| 1484 | 1471 |
| 1485 occlusion_in_target_of_delegated_quad += gfx::Vector2d(11, 0); | 1472 occlusion_in_target_of_delegated_quad += gfx::Vector2d(11, 0); |
| 1486 | 1473 |
| 1487 impl.CalcDrawProps(viewport_size); | 1474 impl.CalcDrawProps(viewport_size); |
| 1488 | 1475 |
| 1489 impl.AppendQuadsForPassWithOcclusion( | 1476 impl.AppendQuadsForPassWithOcclusion(delegated_renderer_layer_impl, pass2, |
| 1490 delegated_renderer_layer_impl, pass2_id, occlusion_in_root_target); | 1477 occlusion_in_root_target); |
| 1491 size_t partially_occluded_count = 0; | 1478 size_t partially_occluded_count = 0; |
| 1492 LayerTestCommon::VerifyQuadsAreOccluded( | 1479 LayerTestCommon::VerifyQuadsAreOccluded( |
| 1493 impl.quad_list(), | 1480 pass2->quad_list, occlusion_in_target_of_delegated_quad, |
| 1494 occlusion_in_target_of_delegated_quad, | |
| 1495 &partially_occluded_count); | 1481 &partially_occluded_count); |
| 1496 // The layer outputs one quad, which is partially occluded. | 1482 // The layer outputs one quad, which is partially occluded. |
| 1497 EXPECT_EQ(1u, impl.quad_list().size()); | 1483 EXPECT_EQ(1u, pass2->quad_list.size()); |
| 1498 EXPECT_EQ(1u, partially_occluded_count); | 1484 EXPECT_EQ(1u, partially_occluded_count); |
| 1499 // The quad in the contributing surface is at (222,300) in the transformed | 1485 // The quad in the contributing surface is at (222,300) in the transformed |
| 1500 // root. The occlusion extends to 500 in the x-axis, pushing the left of | 1486 // root. The occlusion extends to 500 in the x-axis, pushing the left of |
| 1501 // the visible part of the quad to 500 - 222 = 300 - 22 inside the quad. | 1487 // the visible part of the quad to 500 - 222 = 300 - 22 inside the quad. |
| 1502 EXPECT_EQ(gfx::Rect(300 - 22, 0, 100 + 22, 500).ToString(), | 1488 EXPECT_EQ(gfx::Rect(300 - 22, 0, 100 + 22, 500).ToString(), |
| 1503 impl.quad_list().front()->visible_rect.ToString()); | 1489 pass2->quad_list.front()->visible_rect.ToString()); |
| 1504 } | 1490 } |
| 1505 } | 1491 } |
| 1506 } | 1492 } |
| 1507 | 1493 |
| 1508 TEST_F(DelegatedRendererLayerImplTest, PushPropertiesTo) { | 1494 TEST_F(DelegatedRendererLayerImplTest, PushPropertiesTo) { |
| 1509 gfx::Size layer_size(1000, 1000); | 1495 gfx::Size layer_size(1000, 1000); |
| 1510 | 1496 |
| 1511 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer_impl = | 1497 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer_impl = |
| 1512 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 5); | 1498 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 5); |
| 1513 delegated_renderer_layer_impl->SetBounds(layer_size); | 1499 delegated_renderer_layer_impl->SetBounds(layer_size); |
| 1514 delegated_renderer_layer_impl->SetContentBounds(layer_size); | 1500 delegated_renderer_layer_impl->SetContentBounds(layer_size); |
| 1515 delegated_renderer_layer_impl->SetDrawsContent(true); | 1501 delegated_renderer_layer_impl->SetDrawsContent(true); |
| 1516 | 1502 |
| 1517 RenderPassList delegated_render_passes; | 1503 RenderPassList delegated_render_passes; |
| 1518 // |pass1| covers the whole layer. | 1504 // |pass1| covers the whole layer. |
| 1519 RenderPassId pass1_id = RenderPassId(5, 0); | 1505 RenderPassId pass1_id = RenderPassId(5, 0); |
| 1520 AddRenderPass(&delegated_render_passes, | 1506 AddRenderPass(&delegated_render_passes, |
| 1521 pass1_id, | 1507 pass1_id, |
| 1522 gfx::Rect(layer_size), | 1508 gfx::Rect(layer_size), |
| 1523 gfx::Transform()); | 1509 gfx::Transform()); |
| 1524 delegated_renderer_layer_impl->SetFrameDataForRenderPasses( | 1510 delegated_renderer_layer_impl->SetFrameDataForRenderPasses( |
| 1525 2.f, &delegated_render_passes); | 1511 2.f, delegated_render_passes); |
| 1526 EXPECT_EQ(0.5f, delegated_renderer_layer_impl->inverse_device_scale_factor()); | 1512 EXPECT_EQ(0.5f, delegated_renderer_layer_impl->inverse_device_scale_factor()); |
| 1527 | 1513 |
| 1528 scoped_ptr<DelegatedRendererLayerImpl> other_layer = | 1514 scoped_ptr<DelegatedRendererLayerImpl> other_layer = |
| 1529 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); | 1515 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); |
| 1530 | 1516 |
| 1531 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); | 1517 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); |
| 1532 | 1518 |
| 1533 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); | 1519 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); |
| 1534 } | 1520 } |
| 1535 | 1521 |
| 1536 } // namespace | 1522 } // namespace |
| 1537 } // namespace cc | 1523 } // namespace cc |
| OLD | NEW |