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 1377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1388 | 1388 |
1389 RenderPassId id(1, 1); | 1389 RenderPassId id(1, 1); |
1390 gfx::Transform transform_to_root; | 1390 gfx::Transform transform_to_root; |
1391 scoped_ptr<RenderPass> pass = | 1391 scoped_ptr<RenderPass> pass = |
1392 CreateTestRenderPass(id, viewport, transform_to_root); | 1392 CreateTestRenderPass(id, viewport, transform_to_root); |
1393 | 1393 |
1394 // 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 |
1395 // is red, which should not appear. | 1395 // is red, which should not appear. |
1396 gfx::Rect blue_rect(gfx::Size(100, 100)); | 1396 gfx::Rect blue_rect(gfx::Size(100, 100)); |
1397 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)); |
1398 scoped_refptr<FakePicturePileImpl> blue_pile = | 1398 |
1399 FakePicturePileImpl::CreateFilledPile(pile_tile_size, blue_rect.size()); | 1399 scoped_ptr<FakePicturePile> blue_recording = |
| 1400 FakePicturePile::CreateFilledPile(pile_tile_size, blue_rect.size()); |
1400 SkPaint red_paint; | 1401 SkPaint red_paint; |
1401 red_paint.setColor(SK_ColorRED); | 1402 red_paint.setColor(SK_ColorRED); |
1402 blue_pile->add_draw_rect_with_paint(blue_rect, red_paint); | 1403 blue_recording->add_draw_rect_with_paint(blue_rect, red_paint); |
1403 SkPaint blue_paint; | 1404 SkPaint blue_paint; |
1404 blue_paint.setColor(SK_ColorBLUE); | 1405 blue_paint.setColor(SK_ColorBLUE); |
1405 blue_pile->add_draw_rect_with_paint(blue_clip_rect, blue_paint); | 1406 blue_recording->add_draw_rect_with_paint(blue_clip_rect, blue_paint); |
1406 blue_pile->RerecordPile(); | 1407 blue_recording->RerecordPile(); |
| 1408 |
| 1409 scoped_refptr<FakePicturePileImpl> blue_pile = |
| 1410 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr); |
1407 | 1411 |
1408 gfx::Transform blue_content_to_target_transform; | 1412 gfx::Transform blue_content_to_target_transform; |
1409 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); | 1413 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); |
1410 blue_content_to_target_transform.Translate(offset.x(), offset.y()); | 1414 blue_content_to_target_transform.Translate(offset.x(), offset.y()); |
1411 gfx::RectF blue_scissor_rect = blue_clip_rect; | 1415 gfx::RectF blue_scissor_rect = blue_clip_rect; |
1412 blue_content_to_target_transform.TransformRect(&blue_scissor_rect); | 1416 blue_content_to_target_transform.TransformRect(&blue_scissor_rect); |
1413 SharedQuadState* blue_shared_state = | 1417 SharedQuadState* blue_shared_state = |
1414 CreateTestSharedQuadStateClipped(blue_content_to_target_transform, | 1418 CreateTestSharedQuadStateClipped(blue_content_to_target_transform, |
1415 blue_rect, | 1419 blue_rect, |
1416 gfx::ToEnclosingRect(blue_scissor_rect), | 1420 gfx::ToEnclosingRect(blue_scissor_rect), |
1417 pass.get()); | 1421 pass.get()); |
1418 | 1422 |
1419 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1423 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1420 | 1424 |
1421 blue_quad->SetNew(blue_shared_state, | 1425 blue_quad->SetNew(blue_shared_state, |
1422 viewport, // Intentionally bigger than clip. | 1426 viewport, // Intentionally bigger than clip. |
1423 gfx::Rect(), viewport, gfx::RectF(viewport), | 1427 gfx::Rect(), viewport, gfx::RectF(viewport), |
1424 viewport.size(), nearest_neighbor, texture_format, viewport, | 1428 viewport.size(), nearest_neighbor, texture_format, viewport, |
1425 1.f, blue_pile.get()); | 1429 1.f, blue_pile.get()); |
1426 | 1430 |
1427 // One viewport-filling green quad. | 1431 // One viewport-filling green quad. |
1428 scoped_refptr<FakePicturePileImpl> green_pile = | 1432 scoped_ptr<FakePicturePile> green_recording = |
1429 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1433 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
1430 SkPaint green_paint; | 1434 SkPaint green_paint; |
1431 green_paint.setColor(SK_ColorGREEN); | 1435 green_paint.setColor(SK_ColorGREEN); |
1432 green_pile->add_draw_rect_with_paint(viewport, green_paint); | 1436 green_recording->add_draw_rect_with_paint(viewport, green_paint); |
1433 green_pile->RerecordPile(); | 1437 green_recording->RerecordPile(); |
| 1438 scoped_refptr<FakePicturePileImpl> green_pile = |
| 1439 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); |
1434 | 1440 |
1435 gfx::Transform green_content_to_target_transform; | 1441 gfx::Transform green_content_to_target_transform; |
1436 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 1442 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
1437 green_content_to_target_transform, viewport, pass.get()); | 1443 green_content_to_target_transform, viewport, pass.get()); |
1438 | 1444 |
1439 PictureDrawQuad* green_quad = | 1445 PictureDrawQuad* green_quad = |
1440 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1446 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1441 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, | 1447 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, |
1442 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), | 1448 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), |
1443 nearest_neighbor, texture_format, viewport, 1.f, | 1449 nearest_neighbor, texture_format, viewport, 1.f, |
(...skipping 14 matching lines...) Expand all Loading... |
1458 gfx::Rect viewport(this->device_viewport_size_); | 1464 gfx::Rect viewport(this->device_viewport_size_); |
1459 ResourceFormat texture_format = RGBA_8888; | 1465 ResourceFormat texture_format = RGBA_8888; |
1460 bool nearest_neighbor = false; | 1466 bool nearest_neighbor = false; |
1461 | 1467 |
1462 RenderPassId id(1, 1); | 1468 RenderPassId id(1, 1); |
1463 gfx::Transform transform_to_root; | 1469 gfx::Transform transform_to_root; |
1464 scoped_ptr<RenderPass> pass = | 1470 scoped_ptr<RenderPass> pass = |
1465 CreateTestRenderPass(id, viewport, transform_to_root); | 1471 CreateTestRenderPass(id, viewport, transform_to_root); |
1466 | 1472 |
1467 // One viewport-filling 0.5-opacity green quad. | 1473 // One viewport-filling 0.5-opacity green quad. |
1468 scoped_refptr<FakePicturePileImpl> green_pile = | 1474 scoped_ptr<FakePicturePile> green_recording = |
1469 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1475 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
1470 SkPaint green_paint; | 1476 SkPaint green_paint; |
1471 green_paint.setColor(SK_ColorGREEN); | 1477 green_paint.setColor(SK_ColorGREEN); |
1472 green_pile->add_draw_rect_with_paint(viewport, green_paint); | 1478 green_recording->add_draw_rect_with_paint(viewport, green_paint); |
1473 green_pile->RerecordPile(); | 1479 green_recording->RerecordPile(); |
| 1480 scoped_refptr<FakePicturePileImpl> green_pile = |
| 1481 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); |
1474 | 1482 |
1475 gfx::Transform green_content_to_target_transform; | 1483 gfx::Transform green_content_to_target_transform; |
1476 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 1484 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
1477 green_content_to_target_transform, viewport, pass.get()); | 1485 green_content_to_target_transform, viewport, pass.get()); |
1478 green_shared_state->opacity = 0.5f; | 1486 green_shared_state->opacity = 0.5f; |
1479 | 1487 |
1480 PictureDrawQuad* green_quad = | 1488 PictureDrawQuad* green_quad = |
1481 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1489 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1482 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, | 1490 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, |
1483 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, | 1491 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, |
1484 texture_format, viewport, 1.f, green_pile.get()); | 1492 texture_format, viewport, 1.f, green_pile.get()); |
1485 | 1493 |
1486 // One viewport-filling white quad. | 1494 // One viewport-filling white quad. |
1487 scoped_refptr<FakePicturePileImpl> white_pile = | 1495 scoped_ptr<FakePicturePile> white_recording = |
1488 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1496 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
1489 SkPaint white_paint; | 1497 SkPaint white_paint; |
1490 white_paint.setColor(SK_ColorWHITE); | 1498 white_paint.setColor(SK_ColorWHITE); |
1491 white_pile->add_draw_rect_with_paint(viewport, white_paint); | 1499 white_recording->add_draw_rect_with_paint(viewport, white_paint); |
1492 white_pile->RerecordPile(); | 1500 white_recording->RerecordPile(); |
| 1501 scoped_refptr<FakePicturePileImpl> white_pile = |
| 1502 FakePicturePileImpl::CreateFromPile(white_recording.get(), nullptr); |
1493 | 1503 |
1494 gfx::Transform white_content_to_target_transform; | 1504 gfx::Transform white_content_to_target_transform; |
1495 SharedQuadState* white_shared_state = CreateTestSharedQuadState( | 1505 SharedQuadState* white_shared_state = CreateTestSharedQuadState( |
1496 white_content_to_target_transform, viewport, pass.get()); | 1506 white_content_to_target_transform, viewport, pass.get()); |
1497 | 1507 |
1498 PictureDrawQuad* white_quad = | 1508 PictureDrawQuad* white_quad = |
1499 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1509 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1500 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport, | 1510 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport, |
1501 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, | 1511 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, |
1502 texture_format, viewport, 1.f, white_pile.get()); | 1512 texture_format, viewport, 1.f, white_pile.get()); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1546 bitmap.allocN32Pixels(2, 2); | 1556 bitmap.allocN32Pixels(2, 2); |
1547 { | 1557 { |
1548 SkAutoLockPixels lock(bitmap); | 1558 SkAutoLockPixels lock(bitmap); |
1549 SkCanvas canvas(bitmap); | 1559 SkCanvas canvas(bitmap); |
1550 canvas.drawPoint(0, 0, SK_ColorGREEN); | 1560 canvas.drawPoint(0, 0, SK_ColorGREEN); |
1551 canvas.drawPoint(0, 1, SK_ColorBLUE); | 1561 canvas.drawPoint(0, 1, SK_ColorBLUE); |
1552 canvas.drawPoint(1, 0, SK_ColorBLUE); | 1562 canvas.drawPoint(1, 0, SK_ColorBLUE); |
1553 canvas.drawPoint(1, 1, SK_ColorGREEN); | 1563 canvas.drawPoint(1, 1, SK_ColorGREEN); |
1554 } | 1564 } |
1555 | 1565 |
1556 scoped_refptr<FakePicturePileImpl> pile = | 1566 scoped_ptr<FakePicturePile> recording = |
1557 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1567 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
1558 SkPaint paint; | 1568 SkPaint paint; |
1559 paint.setFilterLevel(SkPaint::kLow_FilterLevel); | 1569 paint.setFilterLevel(SkPaint::kLow_FilterLevel); |
1560 pile->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); | 1570 recording->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); |
1561 pile->RerecordPile(); | 1571 recording->RerecordPile(); |
| 1572 scoped_refptr<FakePicturePileImpl> pile = |
| 1573 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); |
1562 | 1574 |
1563 gfx::Transform content_to_target_transform; | 1575 gfx::Transform content_to_target_transform; |
1564 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1576 SharedQuadState* shared_state = CreateTestSharedQuadState( |
1565 content_to_target_transform, viewport, pass.get()); | 1577 content_to_target_transform, viewport, pass.get()); |
1566 | 1578 |
1567 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1579 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1568 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, | 1580 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, |
1569 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, | 1581 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, |
1570 texture_format, viewport, 1.f, pile.get()); | 1582 texture_format, viewport, 1.f, pile.get()); |
1571 | 1583 |
(...skipping 24 matching lines...) Expand all Loading... |
1596 bitmap.allocN32Pixels(2, 2); | 1608 bitmap.allocN32Pixels(2, 2); |
1597 { | 1609 { |
1598 SkAutoLockPixels lock(bitmap); | 1610 SkAutoLockPixels lock(bitmap); |
1599 SkCanvas canvas(bitmap); | 1611 SkCanvas canvas(bitmap); |
1600 canvas.drawPoint(0, 0, SK_ColorGREEN); | 1612 canvas.drawPoint(0, 0, SK_ColorGREEN); |
1601 canvas.drawPoint(0, 1, SK_ColorBLUE); | 1613 canvas.drawPoint(0, 1, SK_ColorBLUE); |
1602 canvas.drawPoint(1, 0, SK_ColorBLUE); | 1614 canvas.drawPoint(1, 0, SK_ColorBLUE); |
1603 canvas.drawPoint(1, 1, SK_ColorGREEN); | 1615 canvas.drawPoint(1, 1, SK_ColorGREEN); |
1604 } | 1616 } |
1605 | 1617 |
1606 scoped_refptr<FakePicturePileImpl> pile = | 1618 scoped_ptr<FakePicturePile> recording = |
1607 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1619 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
1608 SkPaint paint; | 1620 SkPaint paint; |
1609 paint.setFilterLevel(SkPaint::kLow_FilterLevel); | 1621 paint.setFilterLevel(SkPaint::kLow_FilterLevel); |
1610 pile->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); | 1622 recording->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); |
1611 pile->RerecordPile(); | 1623 recording->RerecordPile(); |
| 1624 scoped_refptr<FakePicturePileImpl> pile = |
| 1625 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); |
1612 | 1626 |
1613 gfx::Transform content_to_target_transform; | 1627 gfx::Transform content_to_target_transform; |
1614 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1628 SharedQuadState* shared_state = CreateTestSharedQuadState( |
1615 content_to_target_transform, viewport, pass.get()); | 1629 content_to_target_transform, viewport, pass.get()); |
1616 | 1630 |
1617 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1631 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1618 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, | 1632 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, |
1619 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, | 1633 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, |
1620 texture_format, viewport, 1.f, pile.get()); | 1634 texture_format, viewport, 1.f, pile.get()); |
1621 | 1635 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1698 scoped_ptr<RenderPass> pass = | 1712 scoped_ptr<RenderPass> pass = |
1699 CreateTestRenderPass(id, viewport, transform_to_root); | 1713 CreateTestRenderPass(id, viewport, transform_to_root); |
1700 | 1714 |
1701 // As scaling up the blue checkerboards will cause sampling on the GPU, | 1715 // As scaling up the blue checkerboards will cause sampling on the GPU, |
1702 // a few extra "cleanup rects" need to be added to clobber the blending | 1716 // a few extra "cleanup rects" need to be added to clobber the blending |
1703 // to make the output image more clean. This will also test subrects | 1717 // to make the output image more clean. This will also test subrects |
1704 // of the layer. | 1718 // of the layer. |
1705 gfx::Transform green_content_to_target_transform; | 1719 gfx::Transform green_content_to_target_transform; |
1706 gfx::Rect green_rect1(gfx::Point(80, 0), gfx::Size(20, 100)); | 1720 gfx::Rect green_rect1(gfx::Point(80, 0), gfx::Size(20, 100)); |
1707 gfx::Rect green_rect2(gfx::Point(0, 80), gfx::Size(100, 20)); | 1721 gfx::Rect green_rect2(gfx::Point(0, 80), gfx::Size(100, 20)); |
1708 scoped_refptr<FakePicturePileImpl> green_pile = | 1722 |
1709 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1723 scoped_ptr<FakePicturePile> green_recording = |
| 1724 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
| 1725 |
1710 SkPaint red_paint; | 1726 SkPaint red_paint; |
1711 red_paint.setColor(SK_ColorRED); | 1727 red_paint.setColor(SK_ColorRED); |
1712 green_pile->add_draw_rect_with_paint(viewport, red_paint); | 1728 green_recording->add_draw_rect_with_paint(viewport, red_paint); |
1713 SkPaint green_paint; | 1729 SkPaint green_paint; |
1714 green_paint.setColor(SK_ColorGREEN); | 1730 green_paint.setColor(SK_ColorGREEN); |
1715 green_pile->add_draw_rect_with_paint(green_rect1, green_paint); | 1731 green_recording->add_draw_rect_with_paint(green_rect1, green_paint); |
1716 green_pile->add_draw_rect_with_paint(green_rect2, green_paint); | 1732 green_recording->add_draw_rect_with_paint(green_rect2, green_paint); |
1717 green_pile->RerecordPile(); | 1733 green_recording->RerecordPile(); |
| 1734 scoped_refptr<FakePicturePileImpl> green_pile = |
| 1735 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); |
1718 | 1736 |
1719 SharedQuadState* top_right_green_shared_quad_state = | 1737 SharedQuadState* top_right_green_shared_quad_state = |
1720 CreateTestSharedQuadState( | 1738 CreateTestSharedQuadState( |
1721 green_content_to_target_transform, viewport, pass.get()); | 1739 green_content_to_target_transform, viewport, pass.get()); |
1722 | 1740 |
1723 PictureDrawQuad* green_quad1 = | 1741 PictureDrawQuad* green_quad1 = |
1724 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1742 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1725 green_quad1->SetNew(top_right_green_shared_quad_state, green_rect1, | 1743 green_quad1->SetNew(top_right_green_shared_quad_state, green_rect1, |
1726 gfx::Rect(), green_rect1, gfx::RectF(green_rect1.size()), | 1744 gfx::Rect(), green_rect1, gfx::RectF(green_rect1.size()), |
1727 green_rect1.size(), nearest_neighbor, texture_format, | 1745 green_rect1.size(), nearest_neighbor, texture_format, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1762 gfx::RectF blue_layer_rect2(gfx::PointF(8.0f, 6.5f), gfx::SizeF(2.5f, 2.5f)); | 1780 gfx::RectF blue_layer_rect2(gfx::PointF(8.0f, 6.5f), gfx::SizeF(2.5f, 2.5f)); |
1763 gfx::RectF union_layer_rect = blue_layer_rect1; | 1781 gfx::RectF union_layer_rect = blue_layer_rect1; |
1764 union_layer_rect.Union(blue_layer_rect2); | 1782 union_layer_rect.Union(blue_layer_rect2); |
1765 | 1783 |
1766 // Because scaling up will cause sampling outside the rects, add one extra | 1784 // Because scaling up will cause sampling outside the rects, add one extra |
1767 // pixel of buffer at the final content scale. | 1785 // pixel of buffer at the final content scale. |
1768 float inset = -1.f / contents_scale; | 1786 float inset = -1.f / contents_scale; |
1769 blue_layer_rect1.Inset(inset, inset, inset, inset); | 1787 blue_layer_rect1.Inset(inset, inset, inset, inset); |
1770 blue_layer_rect2.Inset(inset, inset, inset, inset); | 1788 blue_layer_rect2.Inset(inset, inset, inset, inset); |
1771 | 1789 |
1772 scoped_refptr<FakePicturePileImpl> pile = | 1790 scoped_ptr<FakePicturePile> recording = |
1773 FakePicturePileImpl::CreateFilledPile(pile_tile_size, layer_rect.size()); | 1791 FakePicturePile::CreateFilledPile(pile_tile_size, layer_rect.size()); |
1774 | 1792 |
1775 Region outside(layer_rect); | 1793 Region outside(layer_rect); |
1776 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); | 1794 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); |
1777 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { | 1795 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { |
1778 pile->add_draw_rect_with_paint(iter.rect(), red_paint); | 1796 recording->add_draw_rect_with_paint(iter.rect(), red_paint); |
1779 } | 1797 } |
1780 | 1798 |
1781 SkPaint blue_paint; | 1799 SkPaint blue_paint; |
1782 blue_paint.setColor(SK_ColorBLUE); | 1800 blue_paint.setColor(SK_ColorBLUE); |
1783 pile->add_draw_rect_with_paint(blue_layer_rect1, blue_paint); | 1801 recording->add_draw_rect_with_paint(blue_layer_rect1, blue_paint); |
1784 pile->add_draw_rect_with_paint(blue_layer_rect2, blue_paint); | 1802 recording->add_draw_rect_with_paint(blue_layer_rect2, blue_paint); |
1785 pile->RerecordPile(); | 1803 recording->RerecordPile(); |
| 1804 scoped_refptr<FakePicturePileImpl> pile = |
| 1805 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); |
1786 | 1806 |
1787 gfx::Rect content_rect( | 1807 gfx::Rect content_rect( |
1788 gfx::ScaleToEnclosingRect(layer_rect, contents_scale)); | 1808 gfx::ScaleToEnclosingRect(layer_rect, contents_scale)); |
1789 gfx::Rect content_union_rect( | 1809 gfx::Rect content_union_rect( |
1790 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); | 1810 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); |
1791 | 1811 |
1792 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, | 1812 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, |
1793 // so scale an additional 10x to make them 100x100. | 1813 // so scale an additional 10x to make them 100x100. |
1794 gfx::Transform content_to_target_transform; | 1814 gfx::Transform content_to_target_transform; |
1795 content_to_target_transform.Scale(10.0, 10.0); | 1815 content_to_target_transform.Scale(10.0, 10.0); |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1986 gfx::Rect viewport(this->device_viewport_size_); | 2006 gfx::Rect viewport(this->device_viewport_size_); |
1987 ResourceFormat texture_format = RGBA_4444; | 2007 ResourceFormat texture_format = RGBA_4444; |
1988 bool nearest_neighbor = false; | 2008 bool nearest_neighbor = false; |
1989 | 2009 |
1990 RenderPassId id(1, 1); | 2010 RenderPassId id(1, 1); |
1991 gfx::Transform transform_to_root; | 2011 gfx::Transform transform_to_root; |
1992 scoped_ptr<RenderPass> pass = | 2012 scoped_ptr<RenderPass> pass = |
1993 CreateTestRenderPass(id, viewport, transform_to_root); | 2013 CreateTestRenderPass(id, viewport, transform_to_root); |
1994 | 2014 |
1995 // One viewport-filling blue quad | 2015 // One viewport-filling blue quad |
1996 scoped_refptr<FakePicturePileImpl> blue_pile = | 2016 scoped_ptr<FakePicturePile> blue_recording = |
1997 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 2017 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
1998 SkPaint blue_paint; | 2018 SkPaint blue_paint; |
1999 blue_paint.setColor(SK_ColorBLUE); | 2019 blue_paint.setColor(SK_ColorBLUE); |
2000 blue_pile->add_draw_rect_with_paint(viewport, blue_paint); | 2020 blue_recording->add_draw_rect_with_paint(viewport, blue_paint); |
2001 blue_pile->RerecordPile(); | 2021 blue_recording->RerecordPile(); |
| 2022 scoped_refptr<FakePicturePileImpl> blue_pile = |
| 2023 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr); |
2002 | 2024 |
2003 gfx::Transform blue_content_to_target_transform; | 2025 gfx::Transform blue_content_to_target_transform; |
2004 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( | 2026 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( |
2005 blue_content_to_target_transform, viewport, pass.get()); | 2027 blue_content_to_target_transform, viewport, pass.get()); |
2006 | 2028 |
2007 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2029 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2008 blue_quad->SetNew(blue_shared_state, viewport, gfx::Rect(), viewport, | 2030 blue_quad->SetNew(blue_shared_state, viewport, gfx::Rect(), viewport, |
2009 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), | 2031 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), |
2010 nearest_neighbor, texture_format, viewport, 1.f, | 2032 nearest_neighbor, texture_format, viewport, 1.f, |
2011 blue_pile.get()); | 2033 blue_pile.get()); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2078 EXPECT_TRUE(this->RunPixelTest( | 2100 EXPECT_TRUE(this->RunPixelTest( |
2079 &pass_list, | 2101 &pass_list, |
2080 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), | 2102 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), |
2081 FuzzyPixelOffByOneComparator(true))); | 2103 FuzzyPixelOffByOneComparator(true))); |
2082 } | 2104 } |
2083 | 2105 |
2084 #endif // !defined(OS_ANDROID) | 2106 #endif // !defined(OS_ANDROID) |
2085 | 2107 |
2086 } // namespace | 2108 } // namespace |
2087 } // namespace cc | 2109 } // namespace cc |
OLD | NEW |