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 "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
6 #include "cc/layers/append_quads_data.h" | 6 #include "cc/layers/append_quads_data.h" |
7 #include "cc/output/gl_renderer.h" | 7 #include "cc/output/gl_renderer.h" |
8 #include "cc/quads/draw_quad.h" | 8 #include "cc/quads/draw_quad.h" |
9 #include "cc/quads/picture_draw_quad.h" | 9 #include "cc/quads/picture_draw_quad.h" |
10 #include "cc/quads/texture_draw_quad.h" | 10 #include "cc/quads/texture_draw_quad.h" |
(...skipping 1400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1411 SharedQuadState* blue_shared_state = | 1411 SharedQuadState* blue_shared_state = |
1412 CreateTestSharedQuadStateClipped(blue_content_to_target_transform, | 1412 CreateTestSharedQuadStateClipped(blue_content_to_target_transform, |
1413 blue_rect, | 1413 blue_rect, |
1414 gfx::ToEnclosingRect(blue_scissor_rect), | 1414 gfx::ToEnclosingRect(blue_scissor_rect), |
1415 pass.get()); | 1415 pass.get()); |
1416 | 1416 |
1417 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1417 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1418 | 1418 |
1419 blue_quad->SetNew(blue_shared_state, | 1419 blue_quad->SetNew(blue_shared_state, |
1420 viewport, // Intentionally bigger than clip. | 1420 viewport, // Intentionally bigger than clip. |
1421 gfx::Rect(), | 1421 gfx::Rect(), viewport, gfx::RectF(viewport), |
1422 viewport, | 1422 viewport.size(), texture_format, viewport, 1.f, |
1423 gfx::RectF(viewport), | 1423 blue_pile.get()); |
1424 viewport.size(), | |
1425 texture_format, | |
1426 viewport, | |
1427 1.f, | |
1428 PicturePileImpl::CreateFromOther(blue_pile.get())); | |
1429 | 1424 |
1430 // One viewport-filling green quad. | 1425 // One viewport-filling green quad. |
1431 scoped_refptr<FakePicturePileImpl> green_pile = | 1426 scoped_refptr<FakePicturePileImpl> green_pile = |
1432 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1427 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); |
1433 SkPaint green_paint; | 1428 SkPaint green_paint; |
1434 green_paint.setColor(SK_ColorGREEN); | 1429 green_paint.setColor(SK_ColorGREEN); |
1435 green_pile->add_draw_rect_with_paint(viewport, green_paint); | 1430 green_pile->add_draw_rect_with_paint(viewport, green_paint); |
1436 green_pile->RerecordPile(); | 1431 green_pile->RerecordPile(); |
1437 | 1432 |
1438 gfx::Transform green_content_to_target_transform; | 1433 gfx::Transform green_content_to_target_transform; |
1439 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 1434 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
1440 green_content_to_target_transform, viewport, pass.get()); | 1435 green_content_to_target_transform, viewport, pass.get()); |
1441 | 1436 |
1442 PictureDrawQuad* green_quad = | 1437 PictureDrawQuad* green_quad = |
1443 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1438 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1444 green_quad->SetNew(green_shared_state, | 1439 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, |
1445 viewport, | 1440 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), |
1446 gfx::Rect(), | 1441 texture_format, viewport, 1.f, green_pile.get()); |
1447 viewport, | |
1448 gfx::RectF(0.f, 0.f, 1.f, 1.f), | |
1449 viewport.size(), | |
1450 texture_format, | |
1451 viewport, | |
1452 1.f, | |
1453 PicturePileImpl::CreateFromOther(green_pile.get())); | |
1454 | 1442 |
1455 RenderPassList pass_list; | 1443 RenderPassList pass_list; |
1456 pass_list.push_back(pass.Pass()); | 1444 pass_list.push_back(pass.Pass()); |
1457 | 1445 |
1458 EXPECT_TRUE(this->RunPixelTest( | 1446 EXPECT_TRUE(this->RunPixelTest( |
1459 &pass_list, | 1447 &pass_list, |
1460 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")), | 1448 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")), |
1461 ExactPixelComparator(true))); | 1449 ExactPixelComparator(true))); |
1462 } | 1450 } |
1463 | 1451 |
(...skipping 16 matching lines...) Expand all Loading... |
1480 green_pile->add_draw_rect_with_paint(viewport, green_paint); | 1468 green_pile->add_draw_rect_with_paint(viewport, green_paint); |
1481 green_pile->RerecordPile(); | 1469 green_pile->RerecordPile(); |
1482 | 1470 |
1483 gfx::Transform green_content_to_target_transform; | 1471 gfx::Transform green_content_to_target_transform; |
1484 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 1472 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
1485 green_content_to_target_transform, viewport, pass.get()); | 1473 green_content_to_target_transform, viewport, pass.get()); |
1486 green_shared_state->opacity = 0.5f; | 1474 green_shared_state->opacity = 0.5f; |
1487 | 1475 |
1488 PictureDrawQuad* green_quad = | 1476 PictureDrawQuad* green_quad = |
1489 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1477 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1490 green_quad->SetNew(green_shared_state, | 1478 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, |
1491 viewport, | 1479 gfx::RectF(0, 0, 1, 1), viewport.size(), texture_format, |
1492 gfx::Rect(), | 1480 viewport, 1.f, green_pile.get()); |
1493 viewport, | |
1494 gfx::RectF(0, 0, 1, 1), | |
1495 viewport.size(), | |
1496 texture_format, | |
1497 viewport, | |
1498 1.f, | |
1499 PicturePileImpl::CreateFromOther(green_pile.get())); | |
1500 | 1481 |
1501 // One viewport-filling white quad. | 1482 // One viewport-filling white quad. |
1502 scoped_refptr<FakePicturePileImpl> white_pile = | 1483 scoped_refptr<FakePicturePileImpl> white_pile = |
1503 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1484 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); |
1504 SkPaint white_paint; | 1485 SkPaint white_paint; |
1505 white_paint.setColor(SK_ColorWHITE); | 1486 white_paint.setColor(SK_ColorWHITE); |
1506 white_pile->add_draw_rect_with_paint(viewport, white_paint); | 1487 white_pile->add_draw_rect_with_paint(viewport, white_paint); |
1507 white_pile->RerecordPile(); | 1488 white_pile->RerecordPile(); |
1508 | 1489 |
1509 gfx::Transform white_content_to_target_transform; | 1490 gfx::Transform white_content_to_target_transform; |
1510 SharedQuadState* white_shared_state = CreateTestSharedQuadState( | 1491 SharedQuadState* white_shared_state = CreateTestSharedQuadState( |
1511 white_content_to_target_transform, viewport, pass.get()); | 1492 white_content_to_target_transform, viewport, pass.get()); |
1512 | 1493 |
1513 PictureDrawQuad* white_quad = | 1494 PictureDrawQuad* white_quad = |
1514 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1495 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1515 white_quad->SetNew(white_shared_state, | 1496 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport, |
1516 viewport, | 1497 gfx::RectF(0, 0, 1, 1), viewport.size(), texture_format, |
1517 gfx::Rect(), | 1498 viewport, 1.f, white_pile.get()); |
1518 viewport, | |
1519 gfx::RectF(0, 0, 1, 1), | |
1520 viewport.size(), | |
1521 texture_format, | |
1522 viewport, | |
1523 1.f, | |
1524 PicturePileImpl::CreateFromOther(white_pile.get())); | |
1525 | 1499 |
1526 RenderPassList pass_list; | 1500 RenderPassList pass_list; |
1527 pass_list.push_back(pass.Pass()); | 1501 pass_list.push_back(pass.Pass()); |
1528 | 1502 |
1529 EXPECT_TRUE(this->RunPixelTest( | 1503 EXPECT_TRUE(this->RunPixelTest( |
1530 &pass_list, | 1504 &pass_list, |
1531 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), | 1505 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), |
1532 FuzzyPixelOffByOneComparator(true))); | 1506 FuzzyPixelOffByOneComparator(true))); |
1533 } | 1507 } |
1534 | 1508 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1579 SkPaint paint; | 1553 SkPaint paint; |
1580 paint.setFilterLevel(SkPaint::kLow_FilterLevel); | 1554 paint.setFilterLevel(SkPaint::kLow_FilterLevel); |
1581 pile->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); | 1555 pile->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); |
1582 pile->RerecordPile(); | 1556 pile->RerecordPile(); |
1583 | 1557 |
1584 gfx::Transform content_to_target_transform; | 1558 gfx::Transform content_to_target_transform; |
1585 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1559 SharedQuadState* shared_state = CreateTestSharedQuadState( |
1586 content_to_target_transform, viewport, pass.get()); | 1560 content_to_target_transform, viewport, pass.get()); |
1587 | 1561 |
1588 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1562 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1589 quad->SetNew(shared_state, | 1563 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, |
1590 viewport, | 1564 gfx::RectF(0, 0, 2, 2), viewport.size(), texture_format, |
1591 gfx::Rect(), | 1565 viewport, 1.f, pile.get()); |
1592 viewport, | |
1593 gfx::RectF(0, 0, 2, 2), | |
1594 viewport.size(), | |
1595 texture_format, | |
1596 viewport, | |
1597 1.f, | |
1598 PicturePileImpl::CreateFromOther(pile.get())); | |
1599 | 1566 |
1600 RenderPassList pass_list; | 1567 RenderPassList pass_list; |
1601 pass_list.push_back(pass.Pass()); | 1568 pass_list.push_back(pass.Pass()); |
1602 | 1569 |
1603 this->disable_picture_quad_image_filtering_ = true; | 1570 this->disable_picture_quad_image_filtering_ = true; |
1604 | 1571 |
1605 EXPECT_TRUE(this->RunPixelTest( | 1572 EXPECT_TRUE(this->RunPixelTest( |
1606 &pass_list, | 1573 &pass_list, |
1607 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), | 1574 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), |
1608 ExactPixelComparator(true))); | 1575 ExactPixelComparator(true))); |
(...skipping 27 matching lines...) Expand all Loading... |
1636 green_pile->add_draw_rect_with_paint(green_rect1, green_paint); | 1603 green_pile->add_draw_rect_with_paint(green_rect1, green_paint); |
1637 green_pile->add_draw_rect_with_paint(green_rect2, green_paint); | 1604 green_pile->add_draw_rect_with_paint(green_rect2, green_paint); |
1638 green_pile->RerecordPile(); | 1605 green_pile->RerecordPile(); |
1639 | 1606 |
1640 SharedQuadState* top_right_green_shared_quad_state = | 1607 SharedQuadState* top_right_green_shared_quad_state = |
1641 CreateTestSharedQuadState( | 1608 CreateTestSharedQuadState( |
1642 green_content_to_target_transform, viewport, pass.get()); | 1609 green_content_to_target_transform, viewport, pass.get()); |
1643 | 1610 |
1644 PictureDrawQuad* green_quad1 = | 1611 PictureDrawQuad* green_quad1 = |
1645 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1612 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1646 green_quad1->SetNew(top_right_green_shared_quad_state, | 1613 green_quad1->SetNew(top_right_green_shared_quad_state, green_rect1, |
1647 green_rect1, | 1614 gfx::Rect(), green_rect1, gfx::RectF(green_rect1.size()), |
1648 gfx::Rect(), | 1615 green_rect1.size(), texture_format, green_rect1, 1.f, |
1649 green_rect1, | 1616 green_pile.get()); |
1650 gfx::RectF(green_rect1.size()), | |
1651 green_rect1.size(), | |
1652 texture_format, | |
1653 green_rect1, | |
1654 1.f, | |
1655 PicturePileImpl::CreateFromOther(green_pile.get())); | |
1656 | 1617 |
1657 PictureDrawQuad* green_quad2 = | 1618 PictureDrawQuad* green_quad2 = |
1658 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1619 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1659 green_quad2->SetNew(top_right_green_shared_quad_state, | 1620 green_quad2->SetNew(top_right_green_shared_quad_state, green_rect2, |
1660 green_rect2, | 1621 gfx::Rect(), green_rect2, gfx::RectF(green_rect2.size()), |
1661 gfx::Rect(), | 1622 green_rect2.size(), texture_format, green_rect2, 1.f, |
1662 green_rect2, | 1623 green_pile.get()); |
1663 gfx::RectF(green_rect2.size()), | |
1664 green_rect2.size(), | |
1665 texture_format, | |
1666 green_rect2, | |
1667 1.f, | |
1668 PicturePileImpl::CreateFromOther(green_pile.get())); | |
1669 | 1624 |
1670 // Add a green clipped checkerboard in the bottom right to help test | 1625 // Add a green clipped checkerboard in the bottom right to help test |
1671 // interleaving picture quad content and solid color content. | 1626 // interleaving picture quad content and solid color content. |
1672 gfx::Rect bottom_right_rect( | 1627 gfx::Rect bottom_right_rect( |
1673 gfx::Point(viewport.width() / 2, viewport.height() / 2), | 1628 gfx::Point(viewport.width() / 2, viewport.height() / 2), |
1674 gfx::Size(viewport.width() / 2, viewport.height() / 2)); | 1629 gfx::Size(viewport.width() / 2, viewport.height() / 2)); |
1675 SharedQuadState* bottom_right_green_shared_state = | 1630 SharedQuadState* bottom_right_green_shared_state = |
1676 CreateTestSharedQuadStateClipped(green_content_to_target_transform, | 1631 CreateTestSharedQuadStateClipped(green_content_to_target_transform, |
1677 viewport, | 1632 viewport, |
1678 bottom_right_rect, | 1633 bottom_right_rect, |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1724 | 1679 |
1725 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, | 1680 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, |
1726 // so scale an additional 10x to make them 100x100. | 1681 // so scale an additional 10x to make them 100x100. |
1727 gfx::Transform content_to_target_transform; | 1682 gfx::Transform content_to_target_transform; |
1728 content_to_target_transform.Scale(10.0, 10.0); | 1683 content_to_target_transform.Scale(10.0, 10.0); |
1729 gfx::Rect quad_content_rect(gfx::Size(20, 20)); | 1684 gfx::Rect quad_content_rect(gfx::Size(20, 20)); |
1730 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( | 1685 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( |
1731 content_to_target_transform, quad_content_rect, pass.get()); | 1686 content_to_target_transform, quad_content_rect, pass.get()); |
1732 | 1687 |
1733 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1688 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1734 blue_quad->SetNew(blue_shared_state, | 1689 blue_quad->SetNew(blue_shared_state, quad_content_rect, gfx::Rect(), |
1735 quad_content_rect, | 1690 quad_content_rect, gfx::RectF(quad_content_rect), |
1736 gfx::Rect(), | 1691 content_union_rect.size(), texture_format, |
1737 quad_content_rect, | 1692 content_union_rect, contents_scale, pile.get()); |
1738 gfx::RectF(quad_content_rect), | |
1739 content_union_rect.size(), | |
1740 texture_format, | |
1741 content_union_rect, | |
1742 contents_scale, | |
1743 PicturePileImpl::CreateFromOther(pile.get())); | |
1744 | 1693 |
1745 // Fill left half of viewport with green. | 1694 // Fill left half of viewport with green. |
1746 gfx::Transform half_green_content_to_target_transform; | 1695 gfx::Transform half_green_content_to_target_transform; |
1747 gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height())); | 1696 gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height())); |
1748 SharedQuadState* half_green_shared_state = CreateTestSharedQuadState( | 1697 SharedQuadState* half_green_shared_state = CreateTestSharedQuadState( |
1749 half_green_content_to_target_transform, half_green_rect, pass.get()); | 1698 half_green_content_to_target_transform, half_green_rect, pass.get()); |
1750 SolidColorDrawQuad* half_color_quad = | 1699 SolidColorDrawQuad* half_color_quad = |
1751 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1700 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
1752 half_color_quad->SetNew(half_green_shared_state, | 1701 half_color_quad->SetNew(half_green_shared_state, |
1753 half_green_rect, | 1702 half_green_rect, |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1936 SkPaint blue_paint; | 1885 SkPaint blue_paint; |
1937 blue_paint.setColor(SK_ColorBLUE); | 1886 blue_paint.setColor(SK_ColorBLUE); |
1938 blue_pile->add_draw_rect_with_paint(viewport, blue_paint); | 1887 blue_pile->add_draw_rect_with_paint(viewport, blue_paint); |
1939 blue_pile->RerecordPile(); | 1888 blue_pile->RerecordPile(); |
1940 | 1889 |
1941 gfx::Transform blue_content_to_target_transform; | 1890 gfx::Transform blue_content_to_target_transform; |
1942 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( | 1891 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( |
1943 blue_content_to_target_transform, viewport, pass.get()); | 1892 blue_content_to_target_transform, viewport, pass.get()); |
1944 | 1893 |
1945 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1894 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1946 blue_quad->SetNew(blue_shared_state, | 1895 blue_quad->SetNew(blue_shared_state, viewport, gfx::Rect(), viewport, |
1947 viewport, | 1896 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), |
1948 gfx::Rect(), | 1897 texture_format, viewport, 1.f, blue_pile.get()); |
1949 viewport, | |
1950 gfx::RectF(0.f, 0.f, 1.f, 1.f), | |
1951 viewport.size(), | |
1952 texture_format, | |
1953 viewport, | |
1954 1.f, | |
1955 PicturePileImpl::CreateFromOther(blue_pile.get())); | |
1956 | 1898 |
1957 RenderPassList pass_list; | 1899 RenderPassList pass_list; |
1958 pass_list.push_back(pass.Pass()); | 1900 pass_list.push_back(pass.Pass()); |
1959 | 1901 |
1960 EXPECT_TRUE(this->RunPixelTest(&pass_list, | 1902 EXPECT_TRUE(this->RunPixelTest(&pass_list, |
1961 base::FilePath(FILE_PATH_LITERAL("blue.png")), | 1903 base::FilePath(FILE_PATH_LITERAL("blue.png")), |
1962 ExactPixelComparator(true))); | 1904 ExactPixelComparator(true))); |
1963 } | 1905 } |
1964 | 1906 |
1965 TYPED_TEST(RendererPixelTest, WrapModeRepeat) { | 1907 TYPED_TEST(RendererPixelTest, WrapModeRepeat) { |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2021 EXPECT_TRUE(this->RunPixelTest( | 1963 EXPECT_TRUE(this->RunPixelTest( |
2022 &pass_list, | 1964 &pass_list, |
2023 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), | 1965 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), |
2024 FuzzyPixelOffByOneComparator(true))); | 1966 FuzzyPixelOffByOneComparator(true))); |
2025 } | 1967 } |
2026 | 1968 |
2027 #endif // !defined(OS_ANDROID) | 1969 #endif // !defined(OS_ANDROID) |
2028 | 1970 |
2029 } // namespace | 1971 } // namespace |
2030 } // namespace cc | 1972 } // namespace cc |
OLD | NEW |