Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: cc/output/renderer_pixeltest.cc

Issue 812543002: Update from https://crrev.com/308331 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/shader.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 1366 matching lines...) Expand 10 before | Expand all | Expand 10 after
1377 &pass_list, 1377 &pass_list,
1378 base::FilePath(FILE_PATH_LITERAL("anti_aliasing_perspective.png")), 1378 base::FilePath(FILE_PATH_LITERAL("anti_aliasing_perspective.png")),
1379 FuzzyPixelOffByOneComparator(true))); 1379 FuzzyPixelOffByOneComparator(true)));
1380 } 1380 }
1381 1381
1382 TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) { 1382 TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) {
1383 gfx::Size pile_tile_size(1000, 1000); 1383 gfx::Size pile_tile_size(1000, 1000);
1384 gfx::Rect viewport(this->device_viewport_size_); 1384 gfx::Rect viewport(this->device_viewport_size_);
1385 // TODO(enne): the renderer should figure this out on its own. 1385 // TODO(enne): the renderer should figure this out on its own.
1386 ResourceFormat texture_format = RGBA_8888; 1386 ResourceFormat texture_format = RGBA_8888;
1387 bool nearest_neighbor = false;
1387 1388
1388 RenderPassId id(1, 1); 1389 RenderPassId id(1, 1);
1389 gfx::Transform transform_to_root; 1390 gfx::Transform transform_to_root;
1390 scoped_ptr<RenderPass> pass = 1391 scoped_ptr<RenderPass> pass =
1391 CreateTestRenderPass(id, viewport, transform_to_root); 1392 CreateTestRenderPass(id, viewport, transform_to_root);
1392 1393
1393 // One clipped blue quad in the lower right corner. Outside the clip 1394 // One clipped blue quad in the lower right corner. Outside the clip
1394 // is red, which should not appear. 1395 // is red, which should not appear.
1395 gfx::Rect blue_rect(gfx::Size(100, 100)); 1396 gfx::Rect blue_rect(gfx::Size(100, 100));
1396 gfx::Rect blue_clip_rect(gfx::Point(50, 50), gfx::Size(50, 50)); 1397 gfx::Rect blue_clip_rect(gfx::Point(50, 50), gfx::Size(50, 50));
(...skipping 16 matching lines...) Expand all
1413 CreateTestSharedQuadStateClipped(blue_content_to_target_transform, 1414 CreateTestSharedQuadStateClipped(blue_content_to_target_transform,
1414 blue_rect, 1415 blue_rect,
1415 gfx::ToEnclosingRect(blue_scissor_rect), 1416 gfx::ToEnclosingRect(blue_scissor_rect),
1416 pass.get()); 1417 pass.get());
1417 1418
1418 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 1419 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
1419 1420
1420 blue_quad->SetNew(blue_shared_state, 1421 blue_quad->SetNew(blue_shared_state,
1421 viewport, // Intentionally bigger than clip. 1422 viewport, // Intentionally bigger than clip.
1422 gfx::Rect(), viewport, gfx::RectF(viewport), 1423 gfx::Rect(), viewport, gfx::RectF(viewport),
1423 viewport.size(), texture_format, viewport, 1.f, 1424 viewport.size(), nearest_neighbor, texture_format, viewport,
1424 blue_pile.get()); 1425 1.f, blue_pile.get());
1425 1426
1426 // One viewport-filling green quad. 1427 // One viewport-filling green quad.
1427 scoped_refptr<FakePicturePileImpl> green_pile = 1428 scoped_refptr<FakePicturePileImpl> green_pile =
1428 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); 1429 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size());
1429 SkPaint green_paint; 1430 SkPaint green_paint;
1430 green_paint.setColor(SK_ColorGREEN); 1431 green_paint.setColor(SK_ColorGREEN);
1431 green_pile->add_draw_rect_with_paint(viewport, green_paint); 1432 green_pile->add_draw_rect_with_paint(viewport, green_paint);
1432 green_pile->RerecordPile(); 1433 green_pile->RerecordPile();
1433 1434
1434 gfx::Transform green_content_to_target_transform; 1435 gfx::Transform green_content_to_target_transform;
1435 SharedQuadState* green_shared_state = CreateTestSharedQuadState( 1436 SharedQuadState* green_shared_state = CreateTestSharedQuadState(
1436 green_content_to_target_transform, viewport, pass.get()); 1437 green_content_to_target_transform, viewport, pass.get());
1437 1438
1438 PictureDrawQuad* green_quad = 1439 PictureDrawQuad* green_quad =
1439 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 1440 pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
1440 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, 1441 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport,
1441 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), 1442 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(),
1442 texture_format, viewport, 1.f, green_pile.get()); 1443 nearest_neighbor, texture_format, viewport, 1.f,
1444 green_pile.get());
1443 1445
1444 RenderPassList pass_list; 1446 RenderPassList pass_list;
1445 pass_list.push_back(pass.Pass()); 1447 pass_list.push_back(pass.Pass());
1446 1448
1447 EXPECT_TRUE(this->RunPixelTest( 1449 EXPECT_TRUE(this->RunPixelTest(
1448 &pass_list, 1450 &pass_list,
1449 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")), 1451 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")),
1450 ExactPixelComparator(true))); 1452 ExactPixelComparator(true)));
1451 } 1453 }
1452 1454
1453 // Not WithSkiaGPUBackend since that path currently requires tiles for opacity. 1455 // Not WithSkiaGPUBackend since that path currently requires tiles for opacity.
1454 TYPED_TEST(RendererPixelTest, PictureDrawQuadOpacity) { 1456 TYPED_TEST(RendererPixelTest, PictureDrawQuadOpacity) {
1455 gfx::Size pile_tile_size(1000, 1000); 1457 gfx::Size pile_tile_size(1000, 1000);
1456 gfx::Rect viewport(this->device_viewport_size_); 1458 gfx::Rect viewport(this->device_viewport_size_);
1457 ResourceFormat texture_format = RGBA_8888; 1459 ResourceFormat texture_format = RGBA_8888;
1460 bool nearest_neighbor = false;
1458 1461
1459 RenderPassId id(1, 1); 1462 RenderPassId id(1, 1);
1460 gfx::Transform transform_to_root; 1463 gfx::Transform transform_to_root;
1461 scoped_ptr<RenderPass> pass = 1464 scoped_ptr<RenderPass> pass =
1462 CreateTestRenderPass(id, viewport, transform_to_root); 1465 CreateTestRenderPass(id, viewport, transform_to_root);
1463 1466
1464 // One viewport-filling 0.5-opacity green quad. 1467 // One viewport-filling 0.5-opacity green quad.
1465 scoped_refptr<FakePicturePileImpl> green_pile = 1468 scoped_refptr<FakePicturePileImpl> green_pile =
1466 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); 1469 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size());
1467 SkPaint green_paint; 1470 SkPaint green_paint;
1468 green_paint.setColor(SK_ColorGREEN); 1471 green_paint.setColor(SK_ColorGREEN);
1469 green_pile->add_draw_rect_with_paint(viewport, green_paint); 1472 green_pile->add_draw_rect_with_paint(viewport, green_paint);
1470 green_pile->RerecordPile(); 1473 green_pile->RerecordPile();
1471 1474
1472 gfx::Transform green_content_to_target_transform; 1475 gfx::Transform green_content_to_target_transform;
1473 SharedQuadState* green_shared_state = CreateTestSharedQuadState( 1476 SharedQuadState* green_shared_state = CreateTestSharedQuadState(
1474 green_content_to_target_transform, viewport, pass.get()); 1477 green_content_to_target_transform, viewport, pass.get());
1475 green_shared_state->opacity = 0.5f; 1478 green_shared_state->opacity = 0.5f;
1476 1479
1477 PictureDrawQuad* green_quad = 1480 PictureDrawQuad* green_quad =
1478 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 1481 pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
1479 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, 1482 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport,
1480 gfx::RectF(0, 0, 1, 1), viewport.size(), texture_format, 1483 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor,
1481 viewport, 1.f, green_pile.get()); 1484 texture_format, viewport, 1.f, green_pile.get());
1482 1485
1483 // One viewport-filling white quad. 1486 // One viewport-filling white quad.
1484 scoped_refptr<FakePicturePileImpl> white_pile = 1487 scoped_refptr<FakePicturePileImpl> white_pile =
1485 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); 1488 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size());
1486 SkPaint white_paint; 1489 SkPaint white_paint;
1487 white_paint.setColor(SK_ColorWHITE); 1490 white_paint.setColor(SK_ColorWHITE);
1488 white_pile->add_draw_rect_with_paint(viewport, white_paint); 1491 white_pile->add_draw_rect_with_paint(viewport, white_paint);
1489 white_pile->RerecordPile(); 1492 white_pile->RerecordPile();
1490 1493
1491 gfx::Transform white_content_to_target_transform; 1494 gfx::Transform white_content_to_target_transform;
1492 SharedQuadState* white_shared_state = CreateTestSharedQuadState( 1495 SharedQuadState* white_shared_state = CreateTestSharedQuadState(
1493 white_content_to_target_transform, viewport, pass.get()); 1496 white_content_to_target_transform, viewport, pass.get());
1494 1497
1495 PictureDrawQuad* white_quad = 1498 PictureDrawQuad* white_quad =
1496 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 1499 pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
1497 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport, 1500 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport,
1498 gfx::RectF(0, 0, 1, 1), viewport.size(), texture_format, 1501 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor,
1499 viewport, 1.f, white_pile.get()); 1502 texture_format, viewport, 1.f, white_pile.get());
1500 1503
1501 RenderPassList pass_list; 1504 RenderPassList pass_list;
1502 pass_list.push_back(pass.Pass()); 1505 pass_list.push_back(pass.Pass());
1503 1506
1504 EXPECT_TRUE(this->RunPixelTest( 1507 EXPECT_TRUE(this->RunPixelTest(
1505 &pass_list, 1508 &pass_list,
1506 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), 1509 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")),
1507 FuzzyPixelOffByOneComparator(true))); 1510 FuzzyPixelOffByOneComparator(true)));
1508 } 1511 }
1509 1512
(...skipping 15 matching lines...) Expand all
1525 // huge sharp squares. 1528 // huge sharp squares.
1526 TYPED_TEST(RendererPixelTest, PictureDrawQuadDisableImageFiltering) { 1529 TYPED_TEST(RendererPixelTest, PictureDrawQuadDisableImageFiltering) {
1527 // We only care about this in software mode since bilinear filtering is 1530 // We only care about this in software mode since bilinear filtering is
1528 // cheap in hardware. 1531 // cheap in hardware.
1529 if (!IsSoftwareRenderer<TypeParam>()) 1532 if (!IsSoftwareRenderer<TypeParam>())
1530 return; 1533 return;
1531 1534
1532 gfx::Size pile_tile_size(1000, 1000); 1535 gfx::Size pile_tile_size(1000, 1000);
1533 gfx::Rect viewport(this->device_viewport_size_); 1536 gfx::Rect viewport(this->device_viewport_size_);
1534 ResourceFormat texture_format = RGBA_8888; 1537 ResourceFormat texture_format = RGBA_8888;
1538 bool nearest_neighbor = false;
1535 1539
1536 RenderPassId id(1, 1); 1540 RenderPassId id(1, 1);
1537 gfx::Transform transform_to_root; 1541 gfx::Transform transform_to_root;
1538 scoped_ptr<RenderPass> pass = 1542 scoped_ptr<RenderPass> pass =
1539 CreateTestRenderPass(id, viewport, transform_to_root); 1543 CreateTestRenderPass(id, viewport, transform_to_root);
1540 1544
1541 SkBitmap bitmap; 1545 SkBitmap bitmap;
1542 bitmap.allocN32Pixels(2, 2); 1546 bitmap.allocN32Pixels(2, 2);
1543 { 1547 {
1544 SkAutoLockPixels lock(bitmap); 1548 SkAutoLockPixels lock(bitmap);
(...skipping 10 matching lines...) Expand all
1555 paint.setFilterLevel(SkPaint::kLow_FilterLevel); 1559 paint.setFilterLevel(SkPaint::kLow_FilterLevel);
1556 pile->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); 1560 pile->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint);
1557 pile->RerecordPile(); 1561 pile->RerecordPile();
1558 1562
1559 gfx::Transform content_to_target_transform; 1563 gfx::Transform content_to_target_transform;
1560 SharedQuadState* shared_state = CreateTestSharedQuadState( 1564 SharedQuadState* shared_state = CreateTestSharedQuadState(
1561 content_to_target_transform, viewport, pass.get()); 1565 content_to_target_transform, viewport, pass.get());
1562 1566
1563 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 1567 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
1564 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, 1568 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport,
1565 gfx::RectF(0, 0, 2, 2), viewport.size(), texture_format, 1569 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor,
1566 viewport, 1.f, pile.get()); 1570 texture_format, viewport, 1.f, pile.get());
1567 1571
1568 RenderPassList pass_list; 1572 RenderPassList pass_list;
1569 pass_list.push_back(pass.Pass()); 1573 pass_list.push_back(pass.Pass());
1570 1574
1571 this->disable_picture_quad_image_filtering_ = true; 1575 this->disable_picture_quad_image_filtering_ = true;
1572 1576
1573 EXPECT_TRUE(this->RunPixelTest( 1577 EXPECT_TRUE(this->RunPixelTest(
1574 &pass_list, 1578 &pass_list,
1575 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 1579 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
1576 ExactPixelComparator(true))); 1580 ExactPixelComparator(true)));
1577 } 1581 }
1578 1582
1583 // This disables filtering by setting |nearest_neighbor| on the PictureDrawQuad.
1584 TYPED_TEST(RendererPixelTest, PictureDrawQuadNearestNeighbor) {
1585 gfx::Size pile_tile_size(1000, 1000);
1586 gfx::Rect viewport(this->device_viewport_size_);
1587 ResourceFormat texture_format = RGBA_8888;
1588 bool nearest_neighbor = true;
1589
1590 RenderPassId id(1, 1);
1591 gfx::Transform transform_to_root;
1592 scoped_ptr<RenderPass> pass =
1593 CreateTestRenderPass(id, viewport, transform_to_root);
1594
1595 SkBitmap bitmap;
1596 bitmap.allocN32Pixels(2, 2);
1597 {
1598 SkAutoLockPixels lock(bitmap);
1599 SkCanvas canvas(bitmap);
1600 canvas.drawPoint(0, 0, SK_ColorGREEN);
1601 canvas.drawPoint(0, 1, SK_ColorBLUE);
1602 canvas.drawPoint(1, 0, SK_ColorBLUE);
1603 canvas.drawPoint(1, 1, SK_ColorGREEN);
1604 }
1605
1606 scoped_refptr<FakePicturePileImpl> pile =
1607 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size());
1608 SkPaint paint;
1609 paint.setFilterLevel(SkPaint::kLow_FilterLevel);
1610 pile->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint);
1611 pile->RerecordPile();
1612
1613 gfx::Transform content_to_target_transform;
1614 SharedQuadState* shared_state = CreateTestSharedQuadState(
1615 content_to_target_transform, viewport, pass.get());
1616
1617 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
1618 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport,
1619 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor,
1620 texture_format, viewport, 1.f, pile.get());
1621
1622 RenderPassList pass_list;
1623 pass_list.push_back(pass.Pass());
1624
1625 EXPECT_TRUE(this->RunPixelTest(
1626 &pass_list,
1627 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
1628 ExactPixelComparator(true)));
1629 }
1630
1631 // This disables filtering by setting |nearest_neighbor| on the TileDrawQuad.
1632 TYPED_TEST(RendererPixelTest, TileDrawQuadNearestNeighbor) {
1633 gfx::Rect viewport(this->device_viewport_size_);
1634 bool swizzle_contents = true;
1635 bool nearest_neighbor = true;
1636
1637 SkBitmap bitmap;
1638 bitmap.allocN32Pixels(2, 2);
1639 {
1640 SkAutoLockPixels lock(bitmap);
1641 SkCanvas canvas(bitmap);
1642 canvas.drawPoint(0, 0, SK_ColorGREEN);
1643 canvas.drawPoint(0, 1, SK_ColorBLUE);
1644 canvas.drawPoint(1, 0, SK_ColorBLUE);
1645 canvas.drawPoint(1, 1, SK_ColorGREEN);
1646 }
1647
1648 gfx::Size tile_size(2, 2);
1649 ResourceProvider::ResourceId resource =
1650 this->resource_provider_->CreateResource(
1651 tile_size,
1652 GL_CLAMP_TO_EDGE,
1653 ResourceProvider::TextureHintImmutable,
1654 RGBA_8888);
1655
1656 {
1657 SkAutoLockPixels lock(bitmap);
1658 this->resource_provider_->SetPixels(
1659 resource,
1660 static_cast<uint8_t*>(bitmap.getPixels()),
1661 gfx::Rect(tile_size),
1662 gfx::Rect(tile_size),
1663 gfx::Vector2d());
1664 }
1665
1666 RenderPassId id(1, 1);
1667 gfx::Transform transform_to_root;
1668 scoped_ptr<RenderPass> pass =
1669 CreateTestRenderPass(id, viewport, transform_to_root);
1670
1671 gfx::Transform content_to_target_transform;
1672 SharedQuadState* shared_state = CreateTestSharedQuadState(
1673 content_to_target_transform, viewport, pass.get());
1674
1675 TileDrawQuad* quad = pass->CreateAndAppendDrawQuad<TileDrawQuad>();
1676 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource,
1677 gfx::Rect(tile_size), tile_size, swizzle_contents,
1678 nearest_neighbor);
1679
1680 RenderPassList pass_list;
1681 pass_list.push_back(pass.Pass());
1682
1683 EXPECT_TRUE(this->RunPixelTest(
1684 &pass_list,
1685 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
1686 ExactPixelComparator(true)));
1687 }
1688
1579 TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) { 1689 TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
1580 gfx::Size pile_tile_size(1000, 1000); 1690 gfx::Size pile_tile_size(1000, 1000);
1581 gfx::Rect viewport(this->device_viewport_size_); 1691 gfx::Rect viewport(this->device_viewport_size_);
1582 // TODO(enne): the renderer should figure this out on its own. 1692 // TODO(enne): the renderer should figure this out on its own.
1583 ResourceFormat texture_format = RGBA_8888; 1693 ResourceFormat texture_format = RGBA_8888;
1694 bool nearest_neighbor = false;
1584 1695
1585 RenderPassId id(1, 1); 1696 RenderPassId id(1, 1);
1586 gfx::Transform transform_to_root; 1697 gfx::Transform transform_to_root;
1587 scoped_ptr<RenderPass> pass = 1698 scoped_ptr<RenderPass> pass =
1588 CreateTestRenderPass(id, viewport, transform_to_root); 1699 CreateTestRenderPass(id, viewport, transform_to_root);
1589 1700
1590 // As scaling up the blue checkerboards will cause sampling on the GPU, 1701 // As scaling up the blue checkerboards will cause sampling on the GPU,
1591 // a few extra "cleanup rects" need to be added to clobber the blending 1702 // a few extra "cleanup rects" need to be added to clobber the blending
1592 // to make the output image more clean. This will also test subrects 1703 // to make the output image more clean. This will also test subrects
1593 // of the layer. 1704 // of the layer.
(...skipping 12 matching lines...) Expand all
1606 green_pile->RerecordPile(); 1717 green_pile->RerecordPile();
1607 1718
1608 SharedQuadState* top_right_green_shared_quad_state = 1719 SharedQuadState* top_right_green_shared_quad_state =
1609 CreateTestSharedQuadState( 1720 CreateTestSharedQuadState(
1610 green_content_to_target_transform, viewport, pass.get()); 1721 green_content_to_target_transform, viewport, pass.get());
1611 1722
1612 PictureDrawQuad* green_quad1 = 1723 PictureDrawQuad* green_quad1 =
1613 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 1724 pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
1614 green_quad1->SetNew(top_right_green_shared_quad_state, green_rect1, 1725 green_quad1->SetNew(top_right_green_shared_quad_state, green_rect1,
1615 gfx::Rect(), green_rect1, gfx::RectF(green_rect1.size()), 1726 gfx::Rect(), green_rect1, gfx::RectF(green_rect1.size()),
1616 green_rect1.size(), texture_format, green_rect1, 1.f, 1727 green_rect1.size(), nearest_neighbor, texture_format,
1617 green_pile.get()); 1728 green_rect1, 1.f, green_pile.get());
1618 1729
1619 PictureDrawQuad* green_quad2 = 1730 PictureDrawQuad* green_quad2 =
1620 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 1731 pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
1621 green_quad2->SetNew(top_right_green_shared_quad_state, green_rect2, 1732 green_quad2->SetNew(top_right_green_shared_quad_state, green_rect2,
1622 gfx::Rect(), green_rect2, gfx::RectF(green_rect2.size()), 1733 gfx::Rect(), green_rect2, gfx::RectF(green_rect2.size()),
1623 green_rect2.size(), texture_format, green_rect2, 1.f, 1734 green_rect2.size(), nearest_neighbor, texture_format,
1624 green_pile.get()); 1735 green_rect2, 1.f, green_pile.get());
1625 1736
1626 // Add a green clipped checkerboard in the bottom right to help test 1737 // Add a green clipped checkerboard in the bottom right to help test
1627 // interleaving picture quad content and solid color content. 1738 // interleaving picture quad content and solid color content.
1628 gfx::Rect bottom_right_rect( 1739 gfx::Rect bottom_right_rect(
1629 gfx::Point(viewport.width() / 2, viewport.height() / 2), 1740 gfx::Point(viewport.width() / 2, viewport.height() / 2),
1630 gfx::Size(viewport.width() / 2, viewport.height() / 2)); 1741 gfx::Size(viewport.width() / 2, viewport.height() / 2));
1631 SharedQuadState* bottom_right_green_shared_state = 1742 SharedQuadState* bottom_right_green_shared_state =
1632 CreateTestSharedQuadStateClipped(green_content_to_target_transform, 1743 CreateTestSharedQuadStateClipped(green_content_to_target_transform,
1633 viewport, 1744 viewport,
1634 bottom_right_rect, 1745 bottom_right_rect,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1682 // so scale an additional 10x to make them 100x100. 1793 // so scale an additional 10x to make them 100x100.
1683 gfx::Transform content_to_target_transform; 1794 gfx::Transform content_to_target_transform;
1684 content_to_target_transform.Scale(10.0, 10.0); 1795 content_to_target_transform.Scale(10.0, 10.0);
1685 gfx::Rect quad_content_rect(gfx::Size(20, 20)); 1796 gfx::Rect quad_content_rect(gfx::Size(20, 20));
1686 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( 1797 SharedQuadState* blue_shared_state = CreateTestSharedQuadState(
1687 content_to_target_transform, quad_content_rect, pass.get()); 1798 content_to_target_transform, quad_content_rect, pass.get());
1688 1799
1689 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 1800 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
1690 blue_quad->SetNew(blue_shared_state, quad_content_rect, gfx::Rect(), 1801 blue_quad->SetNew(blue_shared_state, quad_content_rect, gfx::Rect(),
1691 quad_content_rect, gfx::RectF(quad_content_rect), 1802 quad_content_rect, gfx::RectF(quad_content_rect),
1692 content_union_rect.size(), texture_format, 1803 content_union_rect.size(), nearest_neighbor, texture_format,
1693 content_union_rect, contents_scale, pile.get()); 1804 content_union_rect, contents_scale, pile.get());
1694 1805
1695 // Fill left half of viewport with green. 1806 // Fill left half of viewport with green.
1696 gfx::Transform half_green_content_to_target_transform; 1807 gfx::Transform half_green_content_to_target_transform;
1697 gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height())); 1808 gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height()));
1698 SharedQuadState* half_green_shared_state = CreateTestSharedQuadState( 1809 SharedQuadState* half_green_shared_state = CreateTestSharedQuadState(
1699 half_green_content_to_target_transform, half_green_rect, pass.get()); 1810 half_green_content_to_target_transform, half_green_rect, pass.get());
1700 SolidColorDrawQuad* half_color_quad = 1811 SolidColorDrawQuad* half_color_quad =
1701 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1812 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1702 half_color_quad->SetNew(half_green_shared_state, 1813 half_color_quad->SetNew(half_green_shared_state,
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1867 pass_list.front(), 1978 pass_list.front(),
1868 base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")), 1979 base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")),
1869 ExactPixelComparator(true), 1980 ExactPixelComparator(true),
1870 &capture_rect)); 1981 &capture_rect));
1871 } 1982 }
1872 1983
1873 TEST_F(GLRendererPixelTest, PictureDrawQuadTexture4444) { 1984 TEST_F(GLRendererPixelTest, PictureDrawQuadTexture4444) {
1874 gfx::Size pile_tile_size(1000, 1000); 1985 gfx::Size pile_tile_size(1000, 1000);
1875 gfx::Rect viewport(this->device_viewport_size_); 1986 gfx::Rect viewport(this->device_viewport_size_);
1876 ResourceFormat texture_format = RGBA_4444; 1987 ResourceFormat texture_format = RGBA_4444;
1988 bool nearest_neighbor = false;
1877 1989
1878 RenderPassId id(1, 1); 1990 RenderPassId id(1, 1);
1879 gfx::Transform transform_to_root; 1991 gfx::Transform transform_to_root;
1880 scoped_ptr<RenderPass> pass = 1992 scoped_ptr<RenderPass> pass =
1881 CreateTestRenderPass(id, viewport, transform_to_root); 1993 CreateTestRenderPass(id, viewport, transform_to_root);
1882 1994
1883 // One viewport-filling blue quad 1995 // One viewport-filling blue quad
1884 scoped_refptr<FakePicturePileImpl> blue_pile = 1996 scoped_refptr<FakePicturePileImpl> blue_pile =
1885 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); 1997 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size());
1886 SkPaint blue_paint; 1998 SkPaint blue_paint;
1887 blue_paint.setColor(SK_ColorBLUE); 1999 blue_paint.setColor(SK_ColorBLUE);
1888 blue_pile->add_draw_rect_with_paint(viewport, blue_paint); 2000 blue_pile->add_draw_rect_with_paint(viewport, blue_paint);
1889 blue_pile->RerecordPile(); 2001 blue_pile->RerecordPile();
1890 2002
1891 gfx::Transform blue_content_to_target_transform; 2003 gfx::Transform blue_content_to_target_transform;
1892 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( 2004 SharedQuadState* blue_shared_state = CreateTestSharedQuadState(
1893 blue_content_to_target_transform, viewport, pass.get()); 2005 blue_content_to_target_transform, viewport, pass.get());
1894 2006
1895 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 2007 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
1896 blue_quad->SetNew(blue_shared_state, viewport, gfx::Rect(), viewport, 2008 blue_quad->SetNew(blue_shared_state, viewport, gfx::Rect(), viewport,
1897 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), 2009 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(),
1898 texture_format, viewport, 1.f, blue_pile.get()); 2010 nearest_neighbor, texture_format, viewport, 1.f,
2011 blue_pile.get());
1899 2012
1900 RenderPassList pass_list; 2013 RenderPassList pass_list;
1901 pass_list.push_back(pass.Pass()); 2014 pass_list.push_back(pass.Pass());
1902 2015
1903 EXPECT_TRUE(this->RunPixelTest(&pass_list, 2016 EXPECT_TRUE(this->RunPixelTest(&pass_list,
1904 base::FilePath(FILE_PATH_LITERAL("blue.png")), 2017 base::FilePath(FILE_PATH_LITERAL("blue.png")),
1905 ExactPixelComparator(true))); 2018 ExactPixelComparator(true)));
1906 } 2019 }
1907 2020
1908 TYPED_TEST(RendererPixelTest, WrapModeRepeat) { 2021 TYPED_TEST(RendererPixelTest, WrapModeRepeat) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1965 EXPECT_TRUE(this->RunPixelTest( 2078 EXPECT_TRUE(this->RunPixelTest(
1966 &pass_list, 2079 &pass_list,
1967 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), 2080 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")),
1968 FuzzyPixelOffByOneComparator(true))); 2081 FuzzyPixelOffByOneComparator(true)));
1969 } 2082 }
1970 2083
1971 #endif // !defined(OS_ANDROID) 2084 #endif // !defined(OS_ANDROID)
1972 2085
1973 } // namespace 2086 } // namespace
1974 } // namespace cc 2087 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/shader.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698