| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "cc/base/math_util.h" | 10 #include "cc/base/math_util.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 namespace cc { | 32 namespace cc { |
| 33 namespace { | 33 namespace { |
| 34 | 34 |
| 35 #if !defined(OS_ANDROID) | 35 #if !defined(OS_ANDROID) |
| 36 std::unique_ptr<RenderPass> CreateTestRootRenderPass(RenderPassId id, | 36 std::unique_ptr<RenderPass> CreateTestRootRenderPass(RenderPassId id, |
| 37 const gfx::Rect& rect) { | 37 const gfx::Rect& rect) { |
| 38 std::unique_ptr<RenderPass> pass = RenderPass::Create(); | 38 std::unique_ptr<RenderPass> pass = RenderPass::Create(); |
| 39 const gfx::Rect output_rect = rect; | 39 const gfx::Rect output_rect = rect; |
| 40 const gfx::Rect damage_rect = rect; | 40 const gfx::Rect damage_rect = rect; |
| 41 const gfx::Transform transform_to_root_target; | 41 const gfx::Transform transform_to_root_target; |
| 42 pass->SetNew(id, output_rect, damage_rect, transform_to_root_target); | 42 const FilterOperations filters; |
| 43 const FilterOperations background_filters; |
| 44 pass->SetNew(id, output_rect, damage_rect, transform_to_root_target, filters, |
| 45 background_filters); |
| 43 return pass; | 46 return pass; |
| 44 } | 47 } |
| 45 | 48 |
| 46 std::unique_ptr<RenderPass> CreateTestRenderPass( | 49 std::unique_ptr<RenderPass> CreateTestRenderPass( |
| 47 RenderPassId id, | 50 RenderPassId id, |
| 48 const gfx::Rect& rect, | 51 const gfx::Rect& rect, |
| 49 const gfx::Transform& transform_to_root_target) { | 52 const gfx::Transform& transform_to_root_target, |
| 53 const FilterOperations& filters, |
| 54 const FilterOperations& background_filters) { |
| 50 std::unique_ptr<RenderPass> pass = RenderPass::Create(); | 55 std::unique_ptr<RenderPass> pass = RenderPass::Create(); |
| 51 const gfx::Rect output_rect = rect; | 56 const gfx::Rect output_rect = rect; |
| 52 const gfx::Rect damage_rect = rect; | 57 const gfx::Rect damage_rect = rect; |
| 53 pass->SetNew(id, output_rect, damage_rect, transform_to_root_target); | 58 pass->SetNew(id, output_rect, damage_rect, transform_to_root_target, filters, |
| 59 background_filters); |
| 54 return pass; | 60 return pass; |
| 55 } | 61 } |
| 56 | 62 |
| 57 SharedQuadState* CreateTestSharedQuadState( | 63 SharedQuadState* CreateTestSharedQuadState( |
| 58 gfx::Transform quad_to_target_transform, | 64 gfx::Transform quad_to_target_transform, |
| 59 const gfx::Rect& rect, | 65 const gfx::Rect& rect, |
| 60 RenderPass* render_pass) { | 66 RenderPass* render_pass) { |
| 61 const gfx::Size layer_bounds = rect.size(); | 67 const gfx::Size layer_bounds = rect.size(); |
| 62 const gfx::Rect visible_layer_rect = rect; | 68 const gfx::Rect visible_layer_rect = rect; |
| 63 const gfx::Rect clip_rect = rect; | 69 const gfx::Rect clip_rect = rect; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 90 return shared_state; | 96 return shared_state; |
| 91 } | 97 } |
| 92 | 98 |
| 93 void CreateTestRenderPassDrawQuad(const SharedQuadState* shared_state, | 99 void CreateTestRenderPassDrawQuad(const SharedQuadState* shared_state, |
| 94 const gfx::Rect& rect, | 100 const gfx::Rect& rect, |
| 95 RenderPassId pass_id, | 101 RenderPassId pass_id, |
| 96 RenderPass* render_pass) { | 102 RenderPass* render_pass) { |
| 97 RenderPassDrawQuad* quad = | 103 RenderPassDrawQuad* quad = |
| 98 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 104 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 99 quad->SetNew(shared_state, rect, rect, pass_id, | 105 quad->SetNew(shared_state, rect, rect, pass_id, |
| 100 0, // mask_resource_id | 106 0, // mask_resource_id |
| 101 gfx::Vector2dF(), // mask_uv_scale | 107 gfx::Vector2dF(), // mask_uv_scale |
| 102 gfx::Size(), // mask_texture_size | 108 gfx::Size(), // mask_texture_size |
| 103 FilterOperations(), // foreground filters | 109 gfx::Vector2dF(), // filters scale |
| 104 gfx::Vector2dF(), // filters scale | 110 gfx::PointF()); // filter origin |
| 105 gfx::PointF(), // filter origin | |
| 106 FilterOperations()); // background filters | |
| 107 } | 111 } |
| 108 | 112 |
| 109 void CreateTestTwoColoredTextureDrawQuad(const gfx::Rect& rect, | 113 void CreateTestTwoColoredTextureDrawQuad(const gfx::Rect& rect, |
| 110 SkColor texel_color, | 114 SkColor texel_color, |
| 111 SkColor texel_stripe_color, | 115 SkColor texel_stripe_color, |
| 112 SkColor background_color, | 116 SkColor background_color, |
| 113 bool premultiplied_alpha, | 117 bool premultiplied_alpha, |
| 114 const SharedQuadState* shared_state, | 118 const SharedQuadState* shared_state, |
| 115 ResourceProvider* resource_provider, | 119 ResourceProvider* resource_provider, |
| 116 RenderPass* render_pass) { | 120 RenderPass* render_pass) { |
| (...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 693 base::FilePath(FILE_PATH_LITERAL("green.png")), | 697 base::FilePath(FILE_PATH_LITERAL("green.png")), |
| 694 ExactPixelComparator(true))); | 698 ExactPixelComparator(true))); |
| 695 } | 699 } |
| 696 | 700 |
| 697 TYPED_TEST(RendererPixelTest, SimpleGreenRect_NonRootRenderPass) { | 701 TYPED_TEST(RendererPixelTest, SimpleGreenRect_NonRootRenderPass) { |
| 698 gfx::Rect rect(this->device_viewport_size_); | 702 gfx::Rect rect(this->device_viewport_size_); |
| 699 gfx::Rect small_rect(100, 100); | 703 gfx::Rect small_rect(100, 100); |
| 700 | 704 |
| 701 RenderPassId child_id(2, 1); | 705 RenderPassId child_id(2, 1); |
| 702 std::unique_ptr<RenderPass> child_pass = | 706 std::unique_ptr<RenderPass> child_pass = |
| 703 CreateTestRenderPass(child_id, small_rect, gfx::Transform()); | 707 CreateTestRenderPass(child_id, small_rect, gfx::Transform(), |
| 708 FilterOperations(), FilterOperations()); |
| 704 | 709 |
| 705 SharedQuadState* child_shared_state = | 710 SharedQuadState* child_shared_state = |
| 706 CreateTestSharedQuadState(gfx::Transform(), small_rect, child_pass.get()); | 711 CreateTestSharedQuadState(gfx::Transform(), small_rect, child_pass.get()); |
| 707 | 712 |
| 708 SolidColorDrawQuad* color_quad = | 713 SolidColorDrawQuad* color_quad = |
| 709 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 714 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 710 color_quad->SetNew(child_shared_state, rect, rect, SK_ColorGREEN, false); | 715 color_quad->SetNew(child_shared_state, rect, rect, SK_ColorGREEN, false); |
| 711 | 716 |
| 712 RenderPassId root_id(1, 1); | 717 RenderPassId root_id(1, 1); |
| 713 std::unique_ptr<RenderPass> root_pass = | 718 std::unique_ptr<RenderPass> root_pass = CreateTestRenderPass( |
| 714 CreateTestRenderPass(root_id, rect, gfx::Transform()); | 719 root_id, rect, gfx::Transform(), FilterOperations(), FilterOperations()); |
| 715 | 720 |
| 716 SharedQuadState* root_shared_state = | 721 SharedQuadState* root_shared_state = |
| 717 CreateTestSharedQuadState(gfx::Transform(), rect, root_pass.get()); | 722 CreateTestSharedQuadState(gfx::Transform(), rect, root_pass.get()); |
| 718 | 723 |
| 719 CreateTestRenderPassDrawQuad( | 724 CreateTestRenderPassDrawQuad( |
| 720 root_shared_state, small_rect, child_id, root_pass.get()); | 725 root_shared_state, small_rect, child_id, root_pass.get()); |
| 721 | 726 |
| 722 RenderPass* child_pass_ptr = child_pass.get(); | 727 RenderPass* child_pass_ptr = child_pass.get(); |
| 723 | 728 |
| 724 RenderPassList pass_list; | 729 RenderPassList pass_list; |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 992 this->AppendBackgroundAndRunTest( | 997 this->AppendBackgroundAndRunTest( |
| 993 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f), | 998 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f), |
| 994 FILE_PATH_LITERAL("intersecting_blue_green_squares.png")); | 999 FILE_PATH_LITERAL("intersecting_blue_green_squares.png")); |
| 995 } | 1000 } |
| 996 | 1001 |
| 997 TYPED_TEST(IntersectingQuadPixelTest, RenderPassQuads) { | 1002 TYPED_TEST(IntersectingQuadPixelTest, RenderPassQuads) { |
| 998 this->SetupQuadStateAndRenderPass(); | 1003 this->SetupQuadStateAndRenderPass(); |
| 999 RenderPassId child_pass_id1(2, 2); | 1004 RenderPassId child_pass_id1(2, 2); |
| 1000 RenderPassId child_pass_id2(2, 3); | 1005 RenderPassId child_pass_id2(2, 3); |
| 1001 std::unique_ptr<RenderPass> child_pass1 = | 1006 std::unique_ptr<RenderPass> child_pass1 = |
| 1002 CreateTestRenderPass(child_pass_id1, this->quad_rect_, gfx::Transform()); | 1007 CreateTestRenderPass(child_pass_id1, this->quad_rect_, gfx::Transform(), |
| 1008 FilterOperations(), FilterOperations()); |
| 1003 SharedQuadState* child1_quad_state = CreateTestSharedQuadState( | 1009 SharedQuadState* child1_quad_state = CreateTestSharedQuadState( |
| 1004 gfx::Transform(), this->quad_rect_, child_pass1.get()); | 1010 gfx::Transform(), this->quad_rect_, child_pass1.get()); |
| 1005 std::unique_ptr<RenderPass> child_pass2 = | 1011 std::unique_ptr<RenderPass> child_pass2 = |
| 1006 CreateTestRenderPass(child_pass_id2, this->quad_rect_, gfx::Transform()); | 1012 CreateTestRenderPass(child_pass_id2, this->quad_rect_, gfx::Transform(), |
| 1013 FilterOperations(), FilterOperations()); |
| 1007 SharedQuadState* child2_quad_state = CreateTestSharedQuadState( | 1014 SharedQuadState* child2_quad_state = CreateTestSharedQuadState( |
| 1008 gfx::Transform(), this->quad_rect_, child_pass2.get()); | 1015 gfx::Transform(), this->quad_rect_, child_pass2.get()); |
| 1009 | 1016 |
| 1010 CreateTestTwoColoredTextureDrawQuad( | 1017 CreateTestTwoColoredTextureDrawQuad( |
| 1011 this->quad_rect_, GetColor<TypeParam>(SkColorSetARGB(255, 0, 0, 0)), | 1018 this->quad_rect_, GetColor<TypeParam>(SkColorSetARGB(255, 0, 0, 0)), |
| 1012 GetColor<TypeParam>(SkColorSetARGB(255, 0, 0, 255)), SK_ColorTRANSPARENT, | 1019 GetColor<TypeParam>(SkColorSetARGB(255, 0, 0, 255)), SK_ColorTRANSPARENT, |
| 1013 true, child1_quad_state, this->resource_provider_.get(), | 1020 true, child1_quad_state, this->resource_provider_.get(), |
| 1014 child_pass1.get()); | 1021 child_pass1.get()); |
| 1015 CreateTestTwoColoredTextureDrawQuad( | 1022 CreateTestTwoColoredTextureDrawQuad( |
| 1016 this->quad_rect_, GetColor<TypeParam>(SkColorSetARGB(255, 0, 255, 0)), | 1023 this->quad_rect_, GetColor<TypeParam>(SkColorSetARGB(255, 0, 255, 0)), |
| (...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1473 TYPED_TEST(RendererPixelTest, FastPassColorFilterAlpha) { | 1480 TYPED_TEST(RendererPixelTest, FastPassColorFilterAlpha) { |
| 1474 gfx::Rect viewport_rect(this->device_viewport_size_); | 1481 gfx::Rect viewport_rect(this->device_viewport_size_); |
| 1475 | 1482 |
| 1476 RenderPassId root_pass_id(1, 1); | 1483 RenderPassId root_pass_id(1, 1); |
| 1477 std::unique_ptr<RenderPass> root_pass = | 1484 std::unique_ptr<RenderPass> root_pass = |
| 1478 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 1485 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 1479 | 1486 |
| 1480 RenderPassId child_pass_id(2, 2); | 1487 RenderPassId child_pass_id(2, 2); |
| 1481 gfx::Rect pass_rect(this->device_viewport_size_); | 1488 gfx::Rect pass_rect(this->device_viewport_size_); |
| 1482 gfx::Transform transform_to_root; | 1489 gfx::Transform transform_to_root; |
| 1483 std::unique_ptr<RenderPass> child_pass = | 1490 SkScalar matrix[20]; |
| 1484 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root); | 1491 float amount = 0.5f; |
| 1492 matrix[0] = 0.213f + 0.787f * amount; |
| 1493 matrix[1] = 0.715f - 0.715f * amount; |
| 1494 matrix[2] = 1.f - (matrix[0] + matrix[1]); |
| 1495 matrix[3] = matrix[4] = 0; |
| 1496 matrix[5] = 0.213f - 0.213f * amount; |
| 1497 matrix[6] = 0.715f + 0.285f * amount; |
| 1498 matrix[7] = 1.f - (matrix[5] + matrix[6]); |
| 1499 matrix[8] = matrix[9] = 0; |
| 1500 matrix[10] = 0.213f - 0.213f * amount; |
| 1501 matrix[11] = 0.715f - 0.715f * amount; |
| 1502 matrix[12] = 1.f - (matrix[10] + matrix[11]); |
| 1503 matrix[13] = matrix[14] = 0; |
| 1504 matrix[15] = matrix[16] = matrix[17] = matrix[19] = 0; |
| 1505 matrix[18] = 1; |
| 1506 FilterOperations filters; |
| 1507 filters.Append( |
| 1508 FilterOperation::CreateReferenceFilter(SkColorFilterImageFilter::Make( |
| 1509 SkColorFilter::MakeMatrixFilterRowMajor255(matrix), nullptr))); |
| 1510 |
| 1511 std::unique_ptr<RenderPass> child_pass = CreateTestRenderPass( |
| 1512 child_pass_id, pass_rect, transform_to_root, filters, FilterOperations()); |
| 1485 | 1513 |
| 1486 gfx::Transform quad_to_target_transform; | 1514 gfx::Transform quad_to_target_transform; |
| 1487 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1515 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 1488 quad_to_target_transform, viewport_rect, child_pass.get()); | 1516 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 1489 shared_state->opacity = 0.5f; | 1517 shared_state->opacity = 0.5f; |
| 1490 | 1518 |
| 1491 gfx::Rect blue_rect(0, | 1519 gfx::Rect blue_rect(0, |
| 1492 0, | 1520 0, |
| 1493 this->device_viewport_size_.width(), | 1521 this->device_viewport_size_.width(), |
| 1494 this->device_viewport_size_.height() / 2); | 1522 this->device_viewport_size_.height() / 2); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1507 quad_to_target_transform, viewport_rect, child_pass.get()); | 1535 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 1508 | 1536 |
| 1509 SolidColorDrawQuad* white = | 1537 SolidColorDrawQuad* white = |
| 1510 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1538 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1511 white->SetNew( | 1539 white->SetNew( |
| 1512 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); | 1540 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); |
| 1513 | 1541 |
| 1514 SharedQuadState* pass_shared_state = | 1542 SharedQuadState* pass_shared_state = |
| 1515 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); | 1543 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); |
| 1516 | 1544 |
| 1517 SkScalar matrix[20]; | |
| 1518 float amount = 0.5f; | |
| 1519 matrix[0] = 0.213f + 0.787f * amount; | |
| 1520 matrix[1] = 0.715f - 0.715f * amount; | |
| 1521 matrix[2] = 1.f - (matrix[0] + matrix[1]); | |
| 1522 matrix[3] = matrix[4] = 0; | |
| 1523 matrix[5] = 0.213f - 0.213f * amount; | |
| 1524 matrix[6] = 0.715f + 0.285f * amount; | |
| 1525 matrix[7] = 1.f - (matrix[5] + matrix[6]); | |
| 1526 matrix[8] = matrix[9] = 0; | |
| 1527 matrix[10] = 0.213f - 0.213f * amount; | |
| 1528 matrix[11] = 0.715f - 0.715f * amount; | |
| 1529 matrix[12] = 1.f - (matrix[10] + matrix[11]); | |
| 1530 matrix[13] = matrix[14] = 0; | |
| 1531 matrix[15] = matrix[16] = matrix[17] = matrix[19] = 0; | |
| 1532 matrix[18] = 1; | |
| 1533 FilterOperations filters; | |
| 1534 filters.Append( | |
| 1535 FilterOperation::CreateReferenceFilter(SkColorFilterImageFilter::Make( | |
| 1536 SkColorFilter::MakeMatrixFilterRowMajor255(matrix), nullptr))); | |
| 1537 | |
| 1538 RenderPassDrawQuad* render_pass_quad = | 1545 RenderPassDrawQuad* render_pass_quad = |
| 1539 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1546 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1540 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, | 1547 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, |
| 1541 child_pass_id, 0, gfx::Vector2dF(), gfx::Size(), | 1548 child_pass_id, 0, gfx::Vector2dF(), gfx::Size(), |
| 1542 filters, gfx::Vector2dF(), gfx::PointF(), | 1549 gfx::Vector2dF(), gfx::PointF()); |
| 1543 FilterOperations()); | |
| 1544 | 1550 |
| 1545 RenderPassList pass_list; | 1551 RenderPassList pass_list; |
| 1546 pass_list.push_back(std::move(child_pass)); | 1552 pass_list.push_back(std::move(child_pass)); |
| 1547 pass_list.push_back(std::move(root_pass)); | 1553 pass_list.push_back(std::move(root_pass)); |
| 1548 | 1554 |
| 1549 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl | 1555 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl |
| 1550 // renderer so use a fuzzy comparator. | 1556 // renderer so use a fuzzy comparator. |
| 1551 EXPECT_TRUE(this->RunPixelTest( | 1557 EXPECT_TRUE(this->RunPixelTest( |
| 1552 &pass_list, | 1558 &pass_list, |
| 1553 base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")), | 1559 base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")), |
| 1554 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); | 1560 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); |
| 1555 } | 1561 } |
| 1556 | 1562 |
| 1557 TYPED_TEST(RendererPixelTest, FastPassSaturateFilter) { | 1563 TYPED_TEST(RendererPixelTest, FastPassSaturateFilter) { |
| 1558 gfx::Rect viewport_rect(this->device_viewport_size_); | 1564 gfx::Rect viewport_rect(this->device_viewport_size_); |
| 1559 | 1565 |
| 1560 RenderPassId root_pass_id(1, 1); | 1566 RenderPassId root_pass_id(1, 1); |
| 1561 std::unique_ptr<RenderPass> root_pass = | 1567 std::unique_ptr<RenderPass> root_pass = |
| 1562 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 1568 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 1563 | 1569 |
| 1564 RenderPassId child_pass_id(2, 2); | 1570 RenderPassId child_pass_id(2, 2); |
| 1565 gfx::Rect pass_rect(this->device_viewport_size_); | 1571 gfx::Rect pass_rect(this->device_viewport_size_); |
| 1566 gfx::Transform transform_to_root; | 1572 gfx::Transform transform_to_root; |
| 1567 std::unique_ptr<RenderPass> child_pass = | 1573 FilterOperations filters; |
| 1568 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root); | 1574 filters.Append(FilterOperation::CreateSaturateFilter(0.5f)); |
| 1575 |
| 1576 std::unique_ptr<RenderPass> child_pass = CreateTestRenderPass( |
| 1577 child_pass_id, pass_rect, transform_to_root, filters, FilterOperations()); |
| 1569 | 1578 |
| 1570 gfx::Transform quad_to_target_transform; | 1579 gfx::Transform quad_to_target_transform; |
| 1571 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1580 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 1572 quad_to_target_transform, viewport_rect, child_pass.get()); | 1581 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 1573 shared_state->opacity = 0.5f; | 1582 shared_state->opacity = 0.5f; |
| 1574 | 1583 |
| 1575 gfx::Rect blue_rect(0, | 1584 gfx::Rect blue_rect(0, |
| 1576 0, | 1585 0, |
| 1577 this->device_viewport_size_.width(), | 1586 this->device_viewport_size_.width(), |
| 1578 this->device_viewport_size_.height() / 2); | 1587 this->device_viewport_size_.height() / 2); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1591 quad_to_target_transform, viewport_rect, child_pass.get()); | 1600 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 1592 | 1601 |
| 1593 SolidColorDrawQuad* white = | 1602 SolidColorDrawQuad* white = |
| 1594 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1603 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1595 white->SetNew( | 1604 white->SetNew( |
| 1596 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); | 1605 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); |
| 1597 | 1606 |
| 1598 SharedQuadState* pass_shared_state = | 1607 SharedQuadState* pass_shared_state = |
| 1599 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); | 1608 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); |
| 1600 | 1609 |
| 1601 FilterOperations filters; | |
| 1602 filters.Append(FilterOperation::CreateSaturateFilter(0.5f)); | |
| 1603 | |
| 1604 RenderPassDrawQuad* render_pass_quad = | 1610 RenderPassDrawQuad* render_pass_quad = |
| 1605 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1611 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1606 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, | 1612 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, |
| 1607 child_pass_id, 0, gfx::Vector2dF(), gfx::Size(), | 1613 child_pass_id, 0, gfx::Vector2dF(), gfx::Size(), |
| 1608 filters, gfx::Vector2dF(), gfx::PointF(), | 1614 gfx::Vector2dF(), gfx::PointF()); |
| 1609 FilterOperations()); | |
| 1610 | 1615 |
| 1611 RenderPassList pass_list; | 1616 RenderPassList pass_list; |
| 1612 pass_list.push_back(std::move(child_pass)); | 1617 pass_list.push_back(std::move(child_pass)); |
| 1613 pass_list.push_back(std::move(root_pass)); | 1618 pass_list.push_back(std::move(root_pass)); |
| 1614 | 1619 |
| 1615 // This test blends slightly differently with the software renderer vs. the gl | 1620 // This test blends slightly differently with the software renderer vs. the gl |
| 1616 // renderer so use a fuzzy comparator. | 1621 // renderer so use a fuzzy comparator. |
| 1617 EXPECT_TRUE(this->RunPixelTest( | 1622 EXPECT_TRUE(this->RunPixelTest( |
| 1618 &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")), | 1623 &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")), |
| 1619 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); | 1624 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); |
| 1620 } | 1625 } |
| 1621 | 1626 |
| 1622 TYPED_TEST(RendererPixelTest, FastPassFilterChain) { | 1627 TYPED_TEST(RendererPixelTest, FastPassFilterChain) { |
| 1623 gfx::Rect viewport_rect(this->device_viewport_size_); | 1628 gfx::Rect viewport_rect(this->device_viewport_size_); |
| 1624 | 1629 |
| 1625 RenderPassId root_pass_id(1, 1); | 1630 RenderPassId root_pass_id(1, 1); |
| 1626 std::unique_ptr<RenderPass> root_pass = | 1631 std::unique_ptr<RenderPass> root_pass = |
| 1627 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 1632 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 1628 | 1633 |
| 1629 RenderPassId child_pass_id(2, 2); | 1634 RenderPassId child_pass_id(2, 2); |
| 1630 gfx::Rect pass_rect(this->device_viewport_size_); | 1635 gfx::Rect pass_rect(this->device_viewport_size_); |
| 1631 gfx::Transform transform_to_root; | 1636 gfx::Transform transform_to_root; |
| 1632 std::unique_ptr<RenderPass> child_pass = | 1637 FilterOperations filters; |
| 1633 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root); | 1638 filters.Append(FilterOperation::CreateGrayscaleFilter(1.f)); |
| 1639 filters.Append(FilterOperation::CreateBrightnessFilter(0.5f)); |
| 1640 |
| 1641 std::unique_ptr<RenderPass> child_pass = CreateTestRenderPass( |
| 1642 child_pass_id, pass_rect, transform_to_root, filters, FilterOperations()); |
| 1634 | 1643 |
| 1635 gfx::Transform quad_to_target_transform; | 1644 gfx::Transform quad_to_target_transform; |
| 1636 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1645 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 1637 quad_to_target_transform, viewport_rect, child_pass.get()); | 1646 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 1638 shared_state->opacity = 0.5f; | 1647 shared_state->opacity = 0.5f; |
| 1639 | 1648 |
| 1640 gfx::Rect blue_rect(0, | 1649 gfx::Rect blue_rect(0, |
| 1641 0, | 1650 0, |
| 1642 this->device_viewport_size_.width(), | 1651 this->device_viewport_size_.width(), |
| 1643 this->device_viewport_size_.height() / 2); | 1652 this->device_viewport_size_.height() / 2); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1656 quad_to_target_transform, viewport_rect, child_pass.get()); | 1665 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 1657 | 1666 |
| 1658 SolidColorDrawQuad* white = | 1667 SolidColorDrawQuad* white = |
| 1659 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1668 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1660 white->SetNew( | 1669 white->SetNew( |
| 1661 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); | 1670 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); |
| 1662 | 1671 |
| 1663 SharedQuadState* pass_shared_state = | 1672 SharedQuadState* pass_shared_state = |
| 1664 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); | 1673 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); |
| 1665 | 1674 |
| 1666 FilterOperations filters; | |
| 1667 filters.Append(FilterOperation::CreateGrayscaleFilter(1.f)); | |
| 1668 filters.Append(FilterOperation::CreateBrightnessFilter(0.5f)); | |
| 1669 | |
| 1670 RenderPassDrawQuad* render_pass_quad = | 1675 RenderPassDrawQuad* render_pass_quad = |
| 1671 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1676 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1672 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, | 1677 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, |
| 1673 child_pass_id, 0, gfx::Vector2dF(), gfx::Size(), | 1678 child_pass_id, 0, gfx::Vector2dF(), gfx::Size(), |
| 1674 filters, gfx::Vector2dF(), gfx::PointF(), | 1679 gfx::Vector2dF(), gfx::PointF()); |
| 1675 FilterOperations()); | |
| 1676 | 1680 |
| 1677 RenderPassList pass_list; | 1681 RenderPassList pass_list; |
| 1678 pass_list.push_back(std::move(child_pass)); | 1682 pass_list.push_back(std::move(child_pass)); |
| 1679 pass_list.push_back(std::move(root_pass)); | 1683 pass_list.push_back(std::move(root_pass)); |
| 1680 | 1684 |
| 1681 // This test blends slightly differently with the software renderer vs. the gl | 1685 // This test blends slightly differently with the software renderer vs. the gl |
| 1682 // renderer so use a fuzzy comparator. | 1686 // renderer so use a fuzzy comparator. |
| 1683 EXPECT_TRUE(this->RunPixelTest( | 1687 EXPECT_TRUE(this->RunPixelTest( |
| 1684 &pass_list, | 1688 &pass_list, |
| 1685 base::FilePath(FILE_PATH_LITERAL("blue_yellow_filter_chain.png")), | 1689 base::FilePath(FILE_PATH_LITERAL("blue_yellow_filter_chain.png")), |
| 1686 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); | 1690 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); |
| 1687 } | 1691 } |
| 1688 | 1692 |
| 1689 TYPED_TEST(RendererPixelTest, FastPassColorFilterAlphaTranslation) { | 1693 TYPED_TEST(RendererPixelTest, FastPassColorFilterAlphaTranslation) { |
| 1690 gfx::Rect viewport_rect(this->device_viewport_size_); | 1694 gfx::Rect viewport_rect(this->device_viewport_size_); |
| 1691 | 1695 |
| 1692 RenderPassId root_pass_id(1, 1); | 1696 RenderPassId root_pass_id(1, 1); |
| 1693 std::unique_ptr<RenderPass> root_pass = | 1697 std::unique_ptr<RenderPass> root_pass = |
| 1694 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 1698 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 1695 | 1699 |
| 1696 RenderPassId child_pass_id(2, 2); | 1700 RenderPassId child_pass_id(2, 2); |
| 1697 gfx::Rect pass_rect(this->device_viewport_size_); | 1701 gfx::Rect pass_rect(this->device_viewport_size_); |
| 1698 gfx::Transform transform_to_root; | 1702 gfx::Transform transform_to_root; |
| 1699 std::unique_ptr<RenderPass> child_pass = | 1703 SkScalar matrix[20]; |
| 1700 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root); | 1704 float amount = 0.5f; |
| 1705 matrix[0] = 0.213f + 0.787f * amount; |
| 1706 matrix[1] = 0.715f - 0.715f * amount; |
| 1707 matrix[2] = 1.f - (matrix[0] + matrix[1]); |
| 1708 matrix[3] = 0; |
| 1709 matrix[4] = 20.f; |
| 1710 matrix[5] = 0.213f - 0.213f * amount; |
| 1711 matrix[6] = 0.715f + 0.285f * amount; |
| 1712 matrix[7] = 1.f - (matrix[5] + matrix[6]); |
| 1713 matrix[8] = 0; |
| 1714 matrix[9] = 200.f; |
| 1715 matrix[10] = 0.213f - 0.213f * amount; |
| 1716 matrix[11] = 0.715f - 0.715f * amount; |
| 1717 matrix[12] = 1.f - (matrix[10] + matrix[11]); |
| 1718 matrix[13] = 0; |
| 1719 matrix[14] = 1.5f; |
| 1720 matrix[15] = matrix[16] = matrix[17] = matrix[19] = 0; |
| 1721 matrix[18] = 1; |
| 1722 FilterOperations filters; |
| 1723 filters.Append( |
| 1724 FilterOperation::CreateReferenceFilter(SkColorFilterImageFilter::Make( |
| 1725 SkColorFilter::MakeMatrixFilterRowMajor255(matrix), nullptr))); |
| 1726 |
| 1727 std::unique_ptr<RenderPass> child_pass = CreateTestRenderPass( |
| 1728 child_pass_id, pass_rect, transform_to_root, filters, FilterOperations()); |
| 1701 | 1729 |
| 1702 gfx::Transform quad_to_target_transform; | 1730 gfx::Transform quad_to_target_transform; |
| 1703 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1731 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 1704 quad_to_target_transform, viewport_rect, child_pass.get()); | 1732 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 1705 shared_state->opacity = 0.5f; | 1733 shared_state->opacity = 0.5f; |
| 1706 | 1734 |
| 1707 gfx::Rect blue_rect(0, | 1735 gfx::Rect blue_rect(0, |
| 1708 0, | 1736 0, |
| 1709 this->device_viewport_size_.width(), | 1737 this->device_viewport_size_.width(), |
| 1710 this->device_viewport_size_.height() / 2); | 1738 this->device_viewport_size_.height() / 2); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1723 quad_to_target_transform, viewport_rect, child_pass.get()); | 1751 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 1724 | 1752 |
| 1725 SolidColorDrawQuad* white = | 1753 SolidColorDrawQuad* white = |
| 1726 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1754 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1727 white->SetNew( | 1755 white->SetNew( |
| 1728 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); | 1756 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); |
| 1729 | 1757 |
| 1730 SharedQuadState* pass_shared_state = | 1758 SharedQuadState* pass_shared_state = |
| 1731 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); | 1759 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); |
| 1732 | 1760 |
| 1733 SkScalar matrix[20]; | |
| 1734 float amount = 0.5f; | |
| 1735 matrix[0] = 0.213f + 0.787f * amount; | |
| 1736 matrix[1] = 0.715f - 0.715f * amount; | |
| 1737 matrix[2] = 1.f - (matrix[0] + matrix[1]); | |
| 1738 matrix[3] = 0; | |
| 1739 matrix[4] = 20.f; | |
| 1740 matrix[5] = 0.213f - 0.213f * amount; | |
| 1741 matrix[6] = 0.715f + 0.285f * amount; | |
| 1742 matrix[7] = 1.f - (matrix[5] + matrix[6]); | |
| 1743 matrix[8] = 0; | |
| 1744 matrix[9] = 200.f; | |
| 1745 matrix[10] = 0.213f - 0.213f * amount; | |
| 1746 matrix[11] = 0.715f - 0.715f * amount; | |
| 1747 matrix[12] = 1.f - (matrix[10] + matrix[11]); | |
| 1748 matrix[13] = 0; | |
| 1749 matrix[14] = 1.5f; | |
| 1750 matrix[15] = matrix[16] = matrix[17] = matrix[19] = 0; | |
| 1751 matrix[18] = 1; | |
| 1752 FilterOperations filters; | |
| 1753 filters.Append( | |
| 1754 FilterOperation::CreateReferenceFilter(SkColorFilterImageFilter::Make( | |
| 1755 SkColorFilter::MakeMatrixFilterRowMajor255(matrix), nullptr))); | |
| 1756 | |
| 1757 RenderPassDrawQuad* render_pass_quad = | 1761 RenderPassDrawQuad* render_pass_quad = |
| 1758 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1762 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1759 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, | 1763 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, |
| 1760 child_pass_id, 0, gfx::Vector2dF(), gfx::Size(), | 1764 child_pass_id, 0, gfx::Vector2dF(), gfx::Size(), |
| 1761 filters, gfx::Vector2dF(), gfx::PointF(), | 1765 gfx::Vector2dF(), gfx::PointF()); |
| 1762 FilterOperations()); | |
| 1763 | 1766 |
| 1764 RenderPassList pass_list; | 1767 RenderPassList pass_list; |
| 1765 | 1768 |
| 1766 pass_list.push_back(std::move(child_pass)); | 1769 pass_list.push_back(std::move(child_pass)); |
| 1767 pass_list.push_back(std::move(root_pass)); | 1770 pass_list.push_back(std::move(root_pass)); |
| 1768 | 1771 |
| 1769 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl | 1772 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl |
| 1770 // renderer so use a fuzzy comparator. | 1773 // renderer so use a fuzzy comparator. |
| 1771 EXPECT_TRUE(this->RunPixelTest( | 1774 EXPECT_TRUE(this->RunPixelTest( |
| 1772 &pass_list, | 1775 &pass_list, |
| 1773 base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha_translate.png")), | 1776 base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha_translate.png")), |
| 1774 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); | 1777 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); |
| 1775 } | 1778 } |
| 1776 | 1779 |
| 1777 TYPED_TEST(RendererPixelTest, EnlargedRenderPassTexture) { | 1780 TYPED_TEST(RendererPixelTest, EnlargedRenderPassTexture) { |
| 1778 gfx::Rect viewport_rect(this->device_viewport_size_); | 1781 gfx::Rect viewport_rect(this->device_viewport_size_); |
| 1779 | 1782 |
| 1780 RenderPassId root_pass_id(1, 1); | 1783 RenderPassId root_pass_id(1, 1); |
| 1781 std::unique_ptr<RenderPass> root_pass = | 1784 std::unique_ptr<RenderPass> root_pass = |
| 1782 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 1785 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 1783 | 1786 |
| 1784 RenderPassId child_pass_id(2, 2); | 1787 RenderPassId child_pass_id(2, 2); |
| 1785 gfx::Rect pass_rect(this->device_viewport_size_); | 1788 gfx::Rect pass_rect(this->device_viewport_size_); |
| 1786 gfx::Transform transform_to_root; | 1789 gfx::Transform transform_to_root; |
| 1787 std::unique_ptr<RenderPass> child_pass = | 1790 std::unique_ptr<RenderPass> child_pass = |
| 1788 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root); | 1791 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root, |
| 1792 FilterOperations(), FilterOperations()); |
| 1789 | 1793 |
| 1790 gfx::Transform quad_to_target_transform; | 1794 gfx::Transform quad_to_target_transform; |
| 1791 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1795 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 1792 quad_to_target_transform, viewport_rect, child_pass.get()); | 1796 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 1793 | 1797 |
| 1794 gfx::Rect blue_rect(0, | 1798 gfx::Rect blue_rect(0, |
| 1795 0, | 1799 0, |
| 1796 this->device_viewport_size_.width(), | 1800 this->device_viewport_size_.width(), |
| 1797 this->device_viewport_size_.height() / 2); | 1801 this->device_viewport_size_.height() / 2); |
| 1798 SolidColorDrawQuad* blue = | 1802 SolidColorDrawQuad* blue = |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1827 gfx::Rect viewport_rect(this->device_viewport_size_); | 1831 gfx::Rect viewport_rect(this->device_viewport_size_); |
| 1828 | 1832 |
| 1829 RenderPassId root_pass_id(1, 1); | 1833 RenderPassId root_pass_id(1, 1); |
| 1830 std::unique_ptr<RenderPass> root_pass = | 1834 std::unique_ptr<RenderPass> root_pass = |
| 1831 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 1835 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 1832 | 1836 |
| 1833 RenderPassId child_pass_id(2, 2); | 1837 RenderPassId child_pass_id(2, 2); |
| 1834 gfx::Rect pass_rect(this->device_viewport_size_); | 1838 gfx::Rect pass_rect(this->device_viewport_size_); |
| 1835 gfx::Transform transform_to_root; | 1839 gfx::Transform transform_to_root; |
| 1836 std::unique_ptr<RenderPass> child_pass = | 1840 std::unique_ptr<RenderPass> child_pass = |
| 1837 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root); | 1841 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root, |
| 1842 FilterOperations(), FilterOperations()); |
| 1838 | 1843 |
| 1839 gfx::Transform quad_to_target_transform; | 1844 gfx::Transform quad_to_target_transform; |
| 1840 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1845 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 1841 quad_to_target_transform, viewport_rect, child_pass.get()); | 1846 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 1842 | 1847 |
| 1843 gfx::Rect blue_rect(0, | 1848 gfx::Rect blue_rect(0, |
| 1844 0, | 1849 0, |
| 1845 this->device_viewport_size_.width(), | 1850 this->device_viewport_size_.width(), |
| 1846 this->device_viewport_size_.height() / 2); | 1851 this->device_viewport_size_.height() / 2); |
| 1847 SolidColorDrawQuad* blue = | 1852 SolidColorDrawQuad* blue = |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1892 | 1897 |
| 1893 RenderPassId root_pass_id(1, 1); | 1898 RenderPassId root_pass_id(1, 1); |
| 1894 std::unique_ptr<RenderPass> root_pass = | 1899 std::unique_ptr<RenderPass> root_pass = |
| 1895 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 1900 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 1896 SharedQuadState* root_pass_shared_state = CreateTestSharedQuadState( | 1901 SharedQuadState* root_pass_shared_state = CreateTestSharedQuadState( |
| 1897 gfx::Transform(), viewport_rect, root_pass.get()); | 1902 gfx::Transform(), viewport_rect, root_pass.get()); |
| 1898 | 1903 |
| 1899 RenderPassId child_pass_id(2, 2); | 1904 RenderPassId child_pass_id(2, 2); |
| 1900 gfx::Transform transform_to_root; | 1905 gfx::Transform transform_to_root; |
| 1901 std::unique_ptr<RenderPass> child_pass = | 1906 std::unique_ptr<RenderPass> child_pass = |
| 1902 CreateTestRenderPass(child_pass_id, viewport_rect, transform_to_root); | 1907 CreateTestRenderPass(child_pass_id, viewport_rect, transform_to_root, |
| 1908 FilterOperations(), FilterOperations()); |
| 1903 SharedQuadState* child_pass_shared_state = CreateTestSharedQuadState( | 1909 SharedQuadState* child_pass_shared_state = CreateTestSharedQuadState( |
| 1904 gfx::Transform(), viewport_rect, child_pass.get()); | 1910 gfx::Transform(), viewport_rect, child_pass.get()); |
| 1905 | 1911 |
| 1906 // The child render pass is just a green box. | 1912 // The child render pass is just a green box. |
| 1907 static const SkColor kCSSGreen = 0xff008000; | 1913 static const SkColor kCSSGreen = 0xff008000; |
| 1908 SolidColorDrawQuad* green = | 1914 SolidColorDrawQuad* green = |
| 1909 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1915 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1910 green->SetNew( | 1916 green->SetNew( |
| 1911 child_pass_shared_state, viewport_rect, viewport_rect, kCSSGreen, false); | 1917 child_pass_shared_state, viewport_rect, viewport_rect, kCSSGreen, false); |
| 1912 | 1918 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1949 EXPECT_NE(sub_rect.bottom(), child_pass->output_rect.bottom()); | 1955 EXPECT_NE(sub_rect.bottom(), child_pass->output_rect.bottom()); |
| 1950 | 1956 |
| 1951 // Set up a mask on the RenderPassDrawQuad. | 1957 // Set up a mask on the RenderPassDrawQuad. |
| 1952 RenderPassDrawQuad* mask_quad = | 1958 RenderPassDrawQuad* mask_quad = |
| 1953 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1959 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1954 mask_quad->SetNew(root_pass_shared_state, sub_rect, sub_rect, child_pass_id, | 1960 mask_quad->SetNew(root_pass_shared_state, sub_rect, sub_rect, child_pass_id, |
| 1955 mask_resource_id, | 1961 mask_resource_id, |
| 1956 gfx::Vector2dF(2.f / mask_rect.width(), | 1962 gfx::Vector2dF(2.f / mask_rect.width(), |
| 1957 2.f / mask_rect.height()), // mask_uv_scale | 1963 2.f / mask_rect.height()), // mask_uv_scale |
| 1958 gfx::Size(mask_rect.size()), // mask_texture_size | 1964 gfx::Size(mask_rect.size()), // mask_texture_size |
| 1959 FilterOperations(), // foreground filters | |
| 1960 gfx::Vector2dF(), // filters scale | 1965 gfx::Vector2dF(), // filters scale |
| 1961 gfx::PointF(), // filter origin | 1966 gfx::PointF()); // filter origin |
| 1962 FilterOperations()); // background filters | |
| 1963 | 1967 |
| 1964 // White background behind the masked render pass. | 1968 // White background behind the masked render pass. |
| 1965 SolidColorDrawQuad* white = | 1969 SolidColorDrawQuad* white = |
| 1966 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1970 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1967 white->SetNew(root_pass_shared_state, | 1971 white->SetNew(root_pass_shared_state, |
| 1968 viewport_rect, | 1972 viewport_rect, |
| 1969 viewport_rect, | 1973 viewport_rect, |
| 1970 SK_ColorWHITE, | 1974 SK_ColorWHITE, |
| 1971 false); | 1975 false); |
| 1972 | 1976 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1987 | 1991 |
| 1988 RenderPassId root_pass_id(1, 1); | 1992 RenderPassId root_pass_id(1, 1); |
| 1989 std::unique_ptr<RenderPass> root_pass = | 1993 std::unique_ptr<RenderPass> root_pass = |
| 1990 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 1994 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 1991 SharedQuadState* root_pass_shared_state = CreateTestSharedQuadState( | 1995 SharedQuadState* root_pass_shared_state = CreateTestSharedQuadState( |
| 1992 gfx::Transform(), viewport_rect, root_pass.get()); | 1996 gfx::Transform(), viewport_rect, root_pass.get()); |
| 1993 | 1997 |
| 1994 RenderPassId child_pass_id(2, 2); | 1998 RenderPassId child_pass_id(2, 2); |
| 1995 gfx::Transform transform_to_root; | 1999 gfx::Transform transform_to_root; |
| 1996 std::unique_ptr<RenderPass> child_pass = | 2000 std::unique_ptr<RenderPass> child_pass = |
| 1997 CreateTestRenderPass(child_pass_id, viewport_rect, transform_to_root); | 2001 CreateTestRenderPass(child_pass_id, viewport_rect, transform_to_root, |
| 2002 FilterOperations(), FilterOperations()); |
| 1998 SharedQuadState* child_pass_shared_state = CreateTestSharedQuadState( | 2003 SharedQuadState* child_pass_shared_state = CreateTestSharedQuadState( |
| 1999 gfx::Transform(), viewport_rect, child_pass.get()); | 2004 gfx::Transform(), viewport_rect, child_pass.get()); |
| 2000 | 2005 |
| 2001 // The child render pass is just a green box. | 2006 // The child render pass is just a green box. |
| 2002 static const SkColor kCSSGreen = 0xff008000; | 2007 static const SkColor kCSSGreen = 0xff008000; |
| 2003 SolidColorDrawQuad* green = | 2008 SolidColorDrawQuad* green = |
| 2004 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 2009 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 2005 green->SetNew(child_pass_shared_state, viewport_rect, viewport_rect, | 2010 green->SetNew(child_pass_shared_state, viewport_rect, viewport_rect, |
| 2006 kCSSGreen, false); | 2011 kCSSGreen, false); |
| 2007 | 2012 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2044 EXPECT_NE(sub_rect.bottom(), child_pass->output_rect.bottom()); | 2049 EXPECT_NE(sub_rect.bottom(), child_pass->output_rect.bottom()); |
| 2045 | 2050 |
| 2046 // Set up a mask on the RenderPassDrawQuad. | 2051 // Set up a mask on the RenderPassDrawQuad. |
| 2047 RenderPassDrawQuad* mask_quad = | 2052 RenderPassDrawQuad* mask_quad = |
| 2048 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 2053 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 2049 mask_quad->SetNew(root_pass_shared_state, sub_rect, sub_rect, child_pass_id, | 2054 mask_quad->SetNew(root_pass_shared_state, sub_rect, sub_rect, child_pass_id, |
| 2050 mask_resource_id, | 2055 mask_resource_id, |
| 2051 gfx::Vector2dF(2.f / mask_rect.width(), | 2056 gfx::Vector2dF(2.f / mask_rect.width(), |
| 2052 2.f / mask_rect.height()), // mask_uv_scale | 2057 2.f / mask_rect.height()), // mask_uv_scale |
| 2053 gfx::Size(mask_rect.size()), // mask_texture_size | 2058 gfx::Size(mask_rect.size()), // mask_texture_size |
| 2054 FilterOperations(), // foreground filters | |
| 2055 gfx::Vector2dF(), // filters scale | 2059 gfx::Vector2dF(), // filters scale |
| 2056 gfx::PointF(), // filter origin | 2060 gfx::PointF()); // filter origin |
| 2057 FilterOperations()); // background filters | |
| 2058 | 2061 |
| 2059 // White background behind the masked render pass. | 2062 // White background behind the masked render pass. |
| 2060 SolidColorDrawQuad* white = | 2063 SolidColorDrawQuad* white = |
| 2061 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 2064 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 2062 white->SetNew(root_pass_shared_state, viewport_rect, viewport_rect, | 2065 white->SetNew(root_pass_shared_state, viewport_rect, viewport_rect, |
| 2063 SK_ColorWHITE, false); | 2066 SK_ColorWHITE, false); |
| 2064 | 2067 |
| 2065 RenderPassList pass_list; | 2068 RenderPassList pass_list; |
| 2066 pass_list.push_back(std::move(child_pass)); | 2069 pass_list.push_back(std::move(child_pass)); |
| 2067 pass_list.push_back(std::move(root_pass)); | 2070 pass_list.push_back(std::move(root_pass)); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 2081 RenderPassId root_id(1, 1); | 2084 RenderPassId root_id(1, 1); |
| 2082 std::unique_ptr<RenderPass> root_pass = | 2085 std::unique_ptr<RenderPass> root_pass = |
| 2083 CreateTestRootRenderPass(root_id, device_viewport_rect); | 2086 CreateTestRootRenderPass(root_id, device_viewport_rect); |
| 2084 root_pass->has_transparent_background = false; | 2087 root_pass->has_transparent_background = false; |
| 2085 | 2088 |
| 2086 gfx::Transform identity_quad_to_target_transform; | 2089 gfx::Transform identity_quad_to_target_transform; |
| 2087 | 2090 |
| 2088 RenderPassId filter_pass_id(2, 1); | 2091 RenderPassId filter_pass_id(2, 1); |
| 2089 gfx::Transform transform_to_root; | 2092 gfx::Transform transform_to_root; |
| 2090 std::unique_ptr<RenderPass> filter_pass = CreateTestRenderPass( | 2093 std::unique_ptr<RenderPass> filter_pass = CreateTestRenderPass( |
| 2091 filter_pass_id, filter_pass_layer_rect_, transform_to_root); | 2094 filter_pass_id, filter_pass_layer_rect_, transform_to_root, |
| 2095 FilterOperations(), this->background_filters_); |
| 2092 | 2096 |
| 2093 // A non-visible quad in the filtering render pass. | 2097 // A non-visible quad in the filtering render pass. |
| 2094 { | 2098 { |
| 2095 SharedQuadState* shared_state = | 2099 SharedQuadState* shared_state = |
| 2096 CreateTestSharedQuadState(identity_quad_to_target_transform, | 2100 CreateTestSharedQuadState(identity_quad_to_target_transform, |
| 2097 filter_pass_layer_rect_, filter_pass.get()); | 2101 filter_pass_layer_rect_, filter_pass.get()); |
| 2098 SolidColorDrawQuad* color_quad = | 2102 SolidColorDrawQuad* color_quad = |
| 2099 filter_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 2103 filter_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 2100 color_quad->SetNew(shared_state, filter_pass_layer_rect_, | 2104 color_quad->SetNew(shared_state, filter_pass_layer_rect_, |
| 2101 filter_pass_layer_rect_, SK_ColorTRANSPARENT, false); | 2105 filter_pass_layer_rect_, SK_ColorTRANSPARENT, false); |
| 2102 } | 2106 } |
| 2103 | 2107 |
| 2104 { | 2108 { |
| 2105 SharedQuadState* shared_state = | 2109 SharedQuadState* shared_state = |
| 2106 CreateTestSharedQuadState(filter_pass_to_target_transform_, | 2110 CreateTestSharedQuadState(filter_pass_to_target_transform_, |
| 2107 filter_pass_layer_rect_, filter_pass.get()); | 2111 filter_pass_layer_rect_, filter_pass.get()); |
| 2108 RenderPassDrawQuad* filter_pass_quad = | 2112 RenderPassDrawQuad* filter_pass_quad = |
| 2109 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 2113 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 2110 filter_pass_quad->SetNew(shared_state, filter_pass_layer_rect_, | 2114 filter_pass_quad->SetNew(shared_state, filter_pass_layer_rect_, |
| 2111 filter_pass_layer_rect_, filter_pass_id, | 2115 filter_pass_layer_rect_, filter_pass_id, |
| 2112 0, // mask_resource_id | 2116 0, // mask_resource_id |
| 2113 gfx::Vector2dF(), // mask_uv_scale | 2117 gfx::Vector2dF(), // mask_uv_scale |
| 2114 gfx::Size(), // mask_texture_size | 2118 gfx::Size(), // mask_texture_size |
| 2115 FilterOperations(), // filters | |
| 2116 gfx::Vector2dF(1.0f, 1.0f), // filters_scale | 2119 gfx::Vector2dF(1.0f, 1.0f), // filters_scale |
| 2117 gfx::PointF(), // filters_origin | 2120 gfx::PointF()); // filters_origin |
| 2118 this->background_filters_); | |
| 2119 } | 2121 } |
| 2120 | 2122 |
| 2121 const int kColumnWidth = device_viewport_rect.width() / 3; | 2123 const int kColumnWidth = device_viewport_rect.width() / 3; |
| 2122 | 2124 |
| 2123 gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20); | 2125 gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20); |
| 2124 for (int i = 0; left_rect.y() < device_viewport_rect.height(); ++i) { | 2126 for (int i = 0; left_rect.y() < device_viewport_rect.height(); ++i) { |
| 2125 SharedQuadState* shared_state = CreateTestSharedQuadState( | 2127 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 2126 identity_quad_to_target_transform, left_rect, root_pass.get()); | 2128 identity_quad_to_target_transform, left_rect, root_pass.get()); |
| 2127 SolidColorDrawQuad* color_quad = | 2129 SolidColorDrawQuad* color_quad = |
| 2128 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 2130 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2287 | 2289 |
| 2288 RenderPassId root_pass_id(1, 1); | 2290 RenderPassId root_pass_id(1, 1); |
| 2289 std::unique_ptr<RenderPass> root_pass = | 2291 std::unique_ptr<RenderPass> root_pass = |
| 2290 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 2292 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 2291 root_pass->has_transparent_background = false; | 2293 root_pass->has_transparent_background = false; |
| 2292 | 2294 |
| 2293 RenderPassId child_pass_id(2, 2); | 2295 RenderPassId child_pass_id(2, 2); |
| 2294 gfx::Rect pass_rect(this->device_viewport_size_); | 2296 gfx::Rect pass_rect(this->device_viewport_size_); |
| 2295 gfx::Transform transform_to_root; | 2297 gfx::Transform transform_to_root; |
| 2296 std::unique_ptr<RenderPass> child_pass = | 2298 std::unique_ptr<RenderPass> child_pass = |
| 2297 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root); | 2299 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root, |
| 2300 FilterOperations(), FilterOperations()); |
| 2298 | 2301 |
| 2299 gfx::Transform quad_to_target_transform; | 2302 gfx::Transform quad_to_target_transform; |
| 2300 SharedQuadState* shared_state = CreateTestSharedQuadState( | 2303 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 2301 quad_to_target_transform, viewport_rect, child_pass.get()); | 2304 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 2302 | 2305 |
| 2303 gfx::Rect blue_rect(0, | 2306 gfx::Rect blue_rect(0, |
| 2304 0, | 2307 0, |
| 2305 this->device_viewport_size_.width(), | 2308 this->device_viewport_size_.width(), |
| 2306 this->device_viewport_size_.height()); | 2309 this->device_viewport_size_.height()); |
| 2307 SolidColorDrawQuad* blue = | 2310 SolidColorDrawQuad* blue = |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2363 FuzzyPixelOffByOneComparator(true))); | 2366 FuzzyPixelOffByOneComparator(true))); |
| 2364 } | 2367 } |
| 2365 | 2368 |
| 2366 // This test tests that anti-aliasing works for axis aligned quads. | 2369 // This test tests that anti-aliasing works for axis aligned quads. |
| 2367 // Anti-aliasing is only supported in the gl renderer. | 2370 // Anti-aliasing is only supported in the gl renderer. |
| 2368 TEST_F(GLRendererPixelTest, AxisAligned) { | 2371 TEST_F(GLRendererPixelTest, AxisAligned) { |
| 2369 gfx::Rect rect(this->device_viewport_size_); | 2372 gfx::Rect rect(this->device_viewport_size_); |
| 2370 | 2373 |
| 2371 RenderPassId id(1, 1); | 2374 RenderPassId id(1, 1); |
| 2372 gfx::Transform transform_to_root; | 2375 gfx::Transform transform_to_root; |
| 2373 std::unique_ptr<RenderPass> pass = | 2376 std::unique_ptr<RenderPass> pass = CreateTestRenderPass( |
| 2374 CreateTestRenderPass(id, rect, transform_to_root); | 2377 id, rect, transform_to_root, FilterOperations(), FilterOperations()); |
| 2375 | 2378 |
| 2376 gfx::Transform red_quad_to_target_transform; | 2379 gfx::Transform red_quad_to_target_transform; |
| 2377 red_quad_to_target_transform.Translate(50, 50); | 2380 red_quad_to_target_transform.Translate(50, 50); |
| 2378 red_quad_to_target_transform.Scale(0.5f + 1.0f / (rect.width() * 2.0f), | 2381 red_quad_to_target_transform.Scale(0.5f + 1.0f / (rect.width() * 2.0f), |
| 2379 0.5f + 1.0f / (rect.height() * 2.0f)); | 2382 0.5f + 1.0f / (rect.height() * 2.0f)); |
| 2380 SharedQuadState* red_shared_state = | 2383 SharedQuadState* red_shared_state = |
| 2381 CreateTestSharedQuadState(red_quad_to_target_transform, rect, pass.get()); | 2384 CreateTestSharedQuadState(red_quad_to_target_transform, rect, pass.get()); |
| 2382 | 2385 |
| 2383 SolidColorDrawQuad* red = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 2386 SolidColorDrawQuad* red = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 2384 red->SetNew(red_shared_state, rect, rect, SK_ColorRED, false); | 2387 red->SetNew(red_shared_state, rect, rect, SK_ColorRED, false); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 2410 ExactPixelComparator(true))); | 2413 ExactPixelComparator(true))); |
| 2411 } | 2414 } |
| 2412 | 2415 |
| 2413 // This test tests that forcing anti-aliasing off works as expected. | 2416 // This test tests that forcing anti-aliasing off works as expected. |
| 2414 // Anti-aliasing is only supported in the gl renderer. | 2417 // Anti-aliasing is only supported in the gl renderer. |
| 2415 TEST_F(GLRendererPixelTest, ForceAntiAliasingOff) { | 2418 TEST_F(GLRendererPixelTest, ForceAntiAliasingOff) { |
| 2416 gfx::Rect rect(this->device_viewport_size_); | 2419 gfx::Rect rect(this->device_viewport_size_); |
| 2417 | 2420 |
| 2418 RenderPassId id(1, 1); | 2421 RenderPassId id(1, 1); |
| 2419 gfx::Transform transform_to_root; | 2422 gfx::Transform transform_to_root; |
| 2420 std::unique_ptr<RenderPass> pass = | 2423 std::unique_ptr<RenderPass> pass = CreateTestRenderPass( |
| 2421 CreateTestRenderPass(id, rect, transform_to_root); | 2424 id, rect, transform_to_root, FilterOperations(), FilterOperations()); |
| 2422 | 2425 |
| 2423 gfx::Transform hole_quad_to_target_transform; | 2426 gfx::Transform hole_quad_to_target_transform; |
| 2424 hole_quad_to_target_transform.Translate(50, 50); | 2427 hole_quad_to_target_transform.Translate(50, 50); |
| 2425 hole_quad_to_target_transform.Scale(0.5f + 1.0f / (rect.width() * 2.0f), | 2428 hole_quad_to_target_transform.Scale(0.5f + 1.0f / (rect.width() * 2.0f), |
| 2426 0.5f + 1.0f / (rect.height() * 2.0f)); | 2429 0.5f + 1.0f / (rect.height() * 2.0f)); |
| 2427 SharedQuadState* hole_shared_state = CreateTestSharedQuadState( | 2430 SharedQuadState* hole_shared_state = CreateTestSharedQuadState( |
| 2428 hole_quad_to_target_transform, rect, pass.get()); | 2431 hole_quad_to_target_transform, rect, pass.get()); |
| 2429 | 2432 |
| 2430 SolidColorDrawQuad* hole = | 2433 SolidColorDrawQuad* hole = |
| 2431 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 2434 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2488 } | 2491 } |
| 2489 | 2492 |
| 2490 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadIdentityScale) { | 2493 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadIdentityScale) { |
| 2491 gfx::Rect viewport(this->device_viewport_size_); | 2494 gfx::Rect viewport(this->device_viewport_size_); |
| 2492 // TODO(enne): the renderer should figure this out on its own. | 2495 // TODO(enne): the renderer should figure this out on its own. |
| 2493 ResourceFormat texture_format = RGBA_8888; | 2496 ResourceFormat texture_format = RGBA_8888; |
| 2494 bool nearest_neighbor = false; | 2497 bool nearest_neighbor = false; |
| 2495 | 2498 |
| 2496 RenderPassId id(1, 1); | 2499 RenderPassId id(1, 1); |
| 2497 gfx::Transform transform_to_root; | 2500 gfx::Transform transform_to_root; |
| 2498 std::unique_ptr<RenderPass> pass = | 2501 std::unique_ptr<RenderPass> pass = CreateTestRenderPass( |
| 2499 CreateTestRenderPass(id, viewport, transform_to_root); | 2502 id, viewport, transform_to_root, FilterOperations(), FilterOperations()); |
| 2500 | 2503 |
| 2501 // One clipped blue quad in the lower right corner. Outside the clip | 2504 // One clipped blue quad in the lower right corner. Outside the clip |
| 2502 // is red, which should not appear. | 2505 // is red, which should not appear. |
| 2503 gfx::Rect blue_rect(gfx::Size(100, 100)); | 2506 gfx::Rect blue_rect(gfx::Size(100, 100)); |
| 2504 gfx::Rect blue_clip_rect(gfx::Point(50, 50), gfx::Size(50, 50)); | 2507 gfx::Rect blue_clip_rect(gfx::Point(50, 50), gfx::Size(50, 50)); |
| 2505 | 2508 |
| 2506 std::unique_ptr<FakeRecordingSource> blue_recording = | 2509 std::unique_ptr<FakeRecordingSource> blue_recording = |
| 2507 FakeRecordingSource::CreateFilledRecordingSource(blue_rect.size()); | 2510 FakeRecordingSource::CreateFilledRecordingSource(blue_rect.size()); |
| 2508 SkPaint red_paint; | 2511 SkPaint red_paint; |
| 2509 red_paint.setColor(SK_ColorRED); | 2512 red_paint.setColor(SK_ColorRED); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2564 } | 2567 } |
| 2565 | 2568 |
| 2566 // Not WithSkiaGPUBackend since that path currently requires tiles for opacity. | 2569 // Not WithSkiaGPUBackend since that path currently requires tiles for opacity. |
| 2567 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadOpacity) { | 2570 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadOpacity) { |
| 2568 gfx::Rect viewport(this->device_viewport_size_); | 2571 gfx::Rect viewport(this->device_viewport_size_); |
| 2569 ResourceFormat texture_format = RGBA_8888; | 2572 ResourceFormat texture_format = RGBA_8888; |
| 2570 bool nearest_neighbor = false; | 2573 bool nearest_neighbor = false; |
| 2571 | 2574 |
| 2572 RenderPassId id(1, 1); | 2575 RenderPassId id(1, 1); |
| 2573 gfx::Transform transform_to_root; | 2576 gfx::Transform transform_to_root; |
| 2574 std::unique_ptr<RenderPass> pass = | 2577 std::unique_ptr<RenderPass> pass = CreateTestRenderPass( |
| 2575 CreateTestRenderPass(id, viewport, transform_to_root); | 2578 id, viewport, transform_to_root, FilterOperations(), FilterOperations()); |
| 2576 | 2579 |
| 2577 // One viewport-filling 0.5-opacity green quad. | 2580 // One viewport-filling 0.5-opacity green quad. |
| 2578 std::unique_ptr<FakeRecordingSource> green_recording = | 2581 std::unique_ptr<FakeRecordingSource> green_recording = |
| 2579 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2582 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2580 SkPaint green_paint; | 2583 SkPaint green_paint; |
| 2581 green_paint.setColor(SK_ColorGREEN); | 2584 green_paint.setColor(SK_ColorGREEN); |
| 2582 green_recording->add_draw_rect_with_paint(viewport, green_paint); | 2585 green_recording->add_draw_rect_with_paint(viewport, green_paint); |
| 2583 green_recording->Rerecord(); | 2586 green_recording->Rerecord(); |
| 2584 scoped_refptr<FakeRasterSource> green_raster_source = | 2587 scoped_refptr<FakeRasterSource> green_raster_source = |
| 2585 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); | 2588 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2646 // cheap in hardware. | 2649 // cheap in hardware. |
| 2647 if (!IsSoftwareRenderer<TypeParam>()) | 2650 if (!IsSoftwareRenderer<TypeParam>()) |
| 2648 return; | 2651 return; |
| 2649 | 2652 |
| 2650 gfx::Rect viewport(this->device_viewport_size_); | 2653 gfx::Rect viewport(this->device_viewport_size_); |
| 2651 ResourceFormat texture_format = RGBA_8888; | 2654 ResourceFormat texture_format = RGBA_8888; |
| 2652 bool nearest_neighbor = false; | 2655 bool nearest_neighbor = false; |
| 2653 | 2656 |
| 2654 RenderPassId id(1, 1); | 2657 RenderPassId id(1, 1); |
| 2655 gfx::Transform transform_to_root; | 2658 gfx::Transform transform_to_root; |
| 2656 std::unique_ptr<RenderPass> pass = | 2659 std::unique_ptr<RenderPass> pass = CreateTestRenderPass( |
| 2657 CreateTestRenderPass(id, viewport, transform_to_root); | 2660 id, viewport, transform_to_root, FilterOperations(), FilterOperations()); |
| 2658 | 2661 |
| 2659 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); | 2662 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); |
| 2660 ASSERT_NE(surface, nullptr); | 2663 ASSERT_NE(surface, nullptr); |
| 2661 SkCanvas* canvas = surface->getCanvas(); | 2664 SkCanvas* canvas = surface->getCanvas(); |
| 2662 canvas->drawPoint(0, 0, SK_ColorGREEN); | 2665 canvas->drawPoint(0, 0, SK_ColorGREEN); |
| 2663 canvas->drawPoint(0, 1, SK_ColorBLUE); | 2666 canvas->drawPoint(0, 1, SK_ColorBLUE); |
| 2664 canvas->drawPoint(1, 0, SK_ColorBLUE); | 2667 canvas->drawPoint(1, 0, SK_ColorBLUE); |
| 2665 canvas->drawPoint(1, 1, SK_ColorGREEN); | 2668 canvas->drawPoint(1, 1, SK_ColorGREEN); |
| 2666 | 2669 |
| 2667 std::unique_ptr<FakeRecordingSource> recording = | 2670 std::unique_ptr<FakeRecordingSource> recording = |
| (...skipping 27 matching lines...) Expand all Loading... |
| 2695 } | 2698 } |
| 2696 | 2699 |
| 2697 // This disables filtering by setting |nearest_neighbor| on the PictureDrawQuad. | 2700 // This disables filtering by setting |nearest_neighbor| on the PictureDrawQuad. |
| 2698 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNearestNeighbor) { | 2701 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNearestNeighbor) { |
| 2699 gfx::Rect viewport(this->device_viewport_size_); | 2702 gfx::Rect viewport(this->device_viewport_size_); |
| 2700 ResourceFormat texture_format = RGBA_8888; | 2703 ResourceFormat texture_format = RGBA_8888; |
| 2701 bool nearest_neighbor = true; | 2704 bool nearest_neighbor = true; |
| 2702 | 2705 |
| 2703 RenderPassId id(1, 1); | 2706 RenderPassId id(1, 1); |
| 2704 gfx::Transform transform_to_root; | 2707 gfx::Transform transform_to_root; |
| 2705 std::unique_ptr<RenderPass> pass = | 2708 std::unique_ptr<RenderPass> pass = CreateTestRenderPass( |
| 2706 CreateTestRenderPass(id, viewport, transform_to_root); | 2709 id, viewport, transform_to_root, FilterOperations(), FilterOperations()); |
| 2707 | 2710 |
| 2708 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); | 2711 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); |
| 2709 ASSERT_NE(surface, nullptr); | 2712 ASSERT_NE(surface, nullptr); |
| 2710 SkCanvas* canvas = surface->getCanvas(); | 2713 SkCanvas* canvas = surface->getCanvas(); |
| 2711 canvas->drawPoint(0, 0, SK_ColorGREEN); | 2714 canvas->drawPoint(0, 0, SK_ColorGREEN); |
| 2712 canvas->drawPoint(0, 1, SK_ColorBLUE); | 2715 canvas->drawPoint(0, 1, SK_ColorBLUE); |
| 2713 canvas->drawPoint(1, 0, SK_ColorBLUE); | 2716 canvas->drawPoint(1, 0, SK_ColorBLUE); |
| 2714 canvas->drawPoint(1, 1, SK_ColorGREEN); | 2717 canvas->drawPoint(1, 1, SK_ColorGREEN); |
| 2715 | 2718 |
| 2716 std::unique_ptr<FakeRecordingSource> recording = | 2719 std::unique_ptr<FakeRecordingSource> recording = |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2764 gfx::ColorSpace()); | 2767 gfx::ColorSpace()); |
| 2765 | 2768 |
| 2766 { | 2769 { |
| 2767 SkAutoLockPixels lock(bitmap); | 2770 SkAutoLockPixels lock(bitmap); |
| 2768 this->resource_provider_->CopyToResource( | 2771 this->resource_provider_->CopyToResource( |
| 2769 resource, static_cast<uint8_t*>(bitmap.getPixels()), tile_size); | 2772 resource, static_cast<uint8_t*>(bitmap.getPixels()), tile_size); |
| 2770 } | 2773 } |
| 2771 | 2774 |
| 2772 RenderPassId id(1, 1); | 2775 RenderPassId id(1, 1); |
| 2773 gfx::Transform transform_to_root; | 2776 gfx::Transform transform_to_root; |
| 2774 std::unique_ptr<RenderPass> pass = | 2777 std::unique_ptr<RenderPass> pass = CreateTestRenderPass( |
| 2775 CreateTestRenderPass(id, viewport, transform_to_root); | 2778 id, viewport, transform_to_root, FilterOperations(), FilterOperations()); |
| 2776 | 2779 |
| 2777 gfx::Transform quad_to_target_transform; | 2780 gfx::Transform quad_to_target_transform; |
| 2778 SharedQuadState* shared_state = | 2781 SharedQuadState* shared_state = |
| 2779 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); | 2782 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); |
| 2780 | 2783 |
| 2781 TileDrawQuad* quad = pass->CreateAndAppendDrawQuad<TileDrawQuad>(); | 2784 TileDrawQuad* quad = pass->CreateAndAppendDrawQuad<TileDrawQuad>(); |
| 2782 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, | 2785 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, |
| 2783 gfx::RectF(gfx::Rect(tile_size)), tile_size, swizzle_contents, | 2786 gfx::RectF(gfx::Rect(tile_size)), tile_size, swizzle_contents, |
| 2784 nearest_neighbor); | 2787 nearest_neighbor); |
| 2785 | 2788 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2815 gfx::ColorSpace()); | 2818 gfx::ColorSpace()); |
| 2816 | 2819 |
| 2817 { | 2820 { |
| 2818 SkAutoLockPixels lock(bitmap); | 2821 SkAutoLockPixels lock(bitmap); |
| 2819 this->resource_provider_->CopyToResource( | 2822 this->resource_provider_->CopyToResource( |
| 2820 resource, static_cast<uint8_t*>(bitmap.getPixels()), tile_size); | 2823 resource, static_cast<uint8_t*>(bitmap.getPixels()), tile_size); |
| 2821 } | 2824 } |
| 2822 | 2825 |
| 2823 RenderPassId id(1, 1); | 2826 RenderPassId id(1, 1); |
| 2824 gfx::Transform transform_to_root; | 2827 gfx::Transform transform_to_root; |
| 2825 std::unique_ptr<RenderPass> pass = | 2828 std::unique_ptr<RenderPass> pass = CreateTestRenderPass( |
| 2826 CreateTestRenderPass(id, viewport, transform_to_root); | 2829 id, viewport, transform_to_root, FilterOperations(), FilterOperations()); |
| 2827 | 2830 |
| 2828 gfx::Transform quad_to_target_transform; | 2831 gfx::Transform quad_to_target_transform; |
| 2829 SharedQuadState* shared_state = | 2832 SharedQuadState* shared_state = |
| 2830 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); | 2833 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); |
| 2831 | 2834 |
| 2832 float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f}; | 2835 float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f}; |
| 2833 TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); | 2836 TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); |
| 2834 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, false, | 2837 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, false, |
| 2835 gfx::PointF(0, 0), gfx::PointF(1, 1), SK_ColorBLACK, | 2838 gfx::PointF(0, 0), gfx::PointF(1, 1), SK_ColorBLACK, |
| 2836 vertex_opacity, false, nearest_neighbor, false); | 2839 vertex_opacity, false, nearest_neighbor, false); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 2867 gfx::ColorSpace()); | 2870 gfx::ColorSpace()); |
| 2868 | 2871 |
| 2869 { | 2872 { |
| 2870 SkAutoLockPixels lock(bitmap); | 2873 SkAutoLockPixels lock(bitmap); |
| 2871 this->resource_provider_->CopyToResource( | 2874 this->resource_provider_->CopyToResource( |
| 2872 resource, static_cast<uint8_t*>(bitmap.getPixels()), tile_size); | 2875 resource, static_cast<uint8_t*>(bitmap.getPixels()), tile_size); |
| 2873 } | 2876 } |
| 2874 | 2877 |
| 2875 RenderPassId id(1, 1); | 2878 RenderPassId id(1, 1); |
| 2876 gfx::Transform transform_to_root; | 2879 gfx::Transform transform_to_root; |
| 2877 std::unique_ptr<RenderPass> pass = | 2880 std::unique_ptr<RenderPass> pass = CreateTestRenderPass( |
| 2878 CreateTestRenderPass(id, viewport, transform_to_root); | 2881 id, viewport, transform_to_root, FilterOperations(), FilterOperations()); |
| 2879 | 2882 |
| 2880 gfx::Transform quad_to_target_transform; | 2883 gfx::Transform quad_to_target_transform; |
| 2881 SharedQuadState* shared_state = | 2884 SharedQuadState* shared_state = |
| 2882 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); | 2885 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); |
| 2883 | 2886 |
| 2884 float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f}; | 2887 float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f}; |
| 2885 TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); | 2888 TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); |
| 2886 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, false, | 2889 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, false, |
| 2887 gfx::PointF(0, 0), gfx::PointF(1, 1), SK_ColorBLACK, | 2890 gfx::PointF(0, 0), gfx::PointF(1, 1), SK_ColorBLACK, |
| 2888 vertex_opacity, false, nearest_neighbor, false); | 2891 vertex_opacity, false, nearest_neighbor, false); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 2899 } | 2902 } |
| 2900 | 2903 |
| 2901 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNonIdentityScale) { | 2904 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNonIdentityScale) { |
| 2902 gfx::Rect viewport(this->device_viewport_size_); | 2905 gfx::Rect viewport(this->device_viewport_size_); |
| 2903 // TODO(enne): the renderer should figure this out on its own. | 2906 // TODO(enne): the renderer should figure this out on its own. |
| 2904 ResourceFormat texture_format = RGBA_8888; | 2907 ResourceFormat texture_format = RGBA_8888; |
| 2905 bool nearest_neighbor = false; | 2908 bool nearest_neighbor = false; |
| 2906 | 2909 |
| 2907 RenderPassId id(1, 1); | 2910 RenderPassId id(1, 1); |
| 2908 gfx::Transform transform_to_root; | 2911 gfx::Transform transform_to_root; |
| 2909 std::unique_ptr<RenderPass> pass = | 2912 std::unique_ptr<RenderPass> pass = CreateTestRenderPass( |
| 2910 CreateTestRenderPass(id, viewport, transform_to_root); | 2913 id, viewport, transform_to_root, FilterOperations(), FilterOperations()); |
| 2911 | 2914 |
| 2912 // As scaling up the blue checkerboards will cause sampling on the GPU, | 2915 // As scaling up the blue checkerboards will cause sampling on the GPU, |
| 2913 // a few extra "cleanup rects" need to be added to clobber the blending | 2916 // a few extra "cleanup rects" need to be added to clobber the blending |
| 2914 // to make the output image more clean. This will also test subrects | 2917 // to make the output image more clean. This will also test subrects |
| 2915 // of the layer. | 2918 // of the layer. |
| 2916 gfx::Transform green_quad_to_target_transform; | 2919 gfx::Transform green_quad_to_target_transform; |
| 2917 gfx::Rect green_rect1(gfx::Point(80, 0), gfx::Size(20, 100)); | 2920 gfx::Rect green_rect1(gfx::Point(80, 0), gfx::Size(20, 100)); |
| 2918 gfx::Rect green_rect2(gfx::Point(0, 80), gfx::Size(100, 20)); | 2921 gfx::Rect green_rect2(gfx::Point(0, 80), gfx::Size(100, 20)); |
| 2919 | 2922 |
| 2920 std::unique_ptr<FakeRecordingSource> green_recording = | 2923 std::unique_ptr<FakeRecordingSource> green_recording = |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3048 gfx::Rect viewport_rect(this->device_viewport_size_); | 3051 gfx::Rect viewport_rect(this->device_viewport_size_); |
| 3049 | 3052 |
| 3050 RenderPassId root_pass_id(1, 1); | 3053 RenderPassId root_pass_id(1, 1); |
| 3051 std::unique_ptr<RenderPass> root_pass = | 3054 std::unique_ptr<RenderPass> root_pass = |
| 3052 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 3055 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 3053 | 3056 |
| 3054 RenderPassId child_pass_id(2, 2); | 3057 RenderPassId child_pass_id(2, 2); |
| 3055 gfx::Rect pass_rect(this->device_viewport_size_); | 3058 gfx::Rect pass_rect(this->device_viewport_size_); |
| 3056 gfx::Transform transform_to_root; | 3059 gfx::Transform transform_to_root; |
| 3057 std::unique_ptr<RenderPass> child_pass = | 3060 std::unique_ptr<RenderPass> child_pass = |
| 3058 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root); | 3061 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root, |
| 3062 FilterOperations(), FilterOperations()); |
| 3059 | 3063 |
| 3060 gfx::Transform quad_to_target_transform; | 3064 gfx::Transform quad_to_target_transform; |
| 3061 SharedQuadState* shared_state = CreateTestSharedQuadState( | 3065 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 3062 quad_to_target_transform, viewport_rect, child_pass.get()); | 3066 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 3063 | 3067 |
| 3064 gfx::Rect blue_rect(0, | 3068 gfx::Rect blue_rect(0, |
| 3065 0, | 3069 0, |
| 3066 this->device_viewport_size_.width(), | 3070 this->device_viewport_size_.width(), |
| 3067 this->device_viewport_size_.height() / 2); | 3071 this->device_viewport_size_.height() / 2); |
| 3068 SolidColorDrawQuad* blue = | 3072 SolidColorDrawQuad* blue = |
| (...skipping 27 matching lines...) Expand all Loading... |
| 3096 gfx::Rect viewport_rect(this->device_viewport_size_); | 3100 gfx::Rect viewport_rect(this->device_viewport_size_); |
| 3097 | 3101 |
| 3098 RenderPassId root_pass_id(1, 1); | 3102 RenderPassId root_pass_id(1, 1); |
| 3099 std::unique_ptr<RenderPass> root_pass = | 3103 std::unique_ptr<RenderPass> root_pass = |
| 3100 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 3104 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 3101 | 3105 |
| 3102 RenderPassId child_pass_id(2, 2); | 3106 RenderPassId child_pass_id(2, 2); |
| 3103 gfx::Rect pass_rect(this->device_viewport_size_); | 3107 gfx::Rect pass_rect(this->device_viewport_size_); |
| 3104 gfx::Transform transform_to_root; | 3108 gfx::Transform transform_to_root; |
| 3105 std::unique_ptr<RenderPass> child_pass = | 3109 std::unique_ptr<RenderPass> child_pass = |
| 3106 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root); | 3110 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root, |
| 3111 FilterOperations(), FilterOperations()); |
| 3107 | 3112 |
| 3108 gfx::Transform quad_to_target_transform; | 3113 gfx::Transform quad_to_target_transform; |
| 3109 SharedQuadState* shared_state = CreateTestSharedQuadState( | 3114 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 3110 quad_to_target_transform, viewport_rect, child_pass.get()); | 3115 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 3111 | 3116 |
| 3112 gfx::Rect blue_rect(0, | 3117 gfx::Rect blue_rect(0, |
| 3113 0, | 3118 0, |
| 3114 this->device_viewport_size_.width(), | 3119 this->device_viewport_size_.width(), |
| 3115 this->device_viewport_size_.height() / 2); | 3120 this->device_viewport_size_.height() / 2); |
| 3116 SolidColorDrawQuad* blue = | 3121 SolidColorDrawQuad* blue = |
| (...skipping 27 matching lines...) Expand all Loading... |
| 3144 gfx::Rect viewport_rect(this->device_viewport_size_); | 3149 gfx::Rect viewport_rect(this->device_viewport_size_); |
| 3145 | 3150 |
| 3146 RenderPassId root_pass_id(1, 1); | 3151 RenderPassId root_pass_id(1, 1); |
| 3147 std::unique_ptr<RenderPass> root_pass = | 3152 std::unique_ptr<RenderPass> root_pass = |
| 3148 CreateTestRootRenderPass(root_pass_id, viewport_rect); | 3153 CreateTestRootRenderPass(root_pass_id, viewport_rect); |
| 3149 | 3154 |
| 3150 RenderPassId child_pass_id(2, 2); | 3155 RenderPassId child_pass_id(2, 2); |
| 3151 gfx::Rect pass_rect(this->device_viewport_size_); | 3156 gfx::Rect pass_rect(this->device_viewport_size_); |
| 3152 gfx::Transform transform_to_root; | 3157 gfx::Transform transform_to_root; |
| 3153 std::unique_ptr<RenderPass> child_pass = | 3158 std::unique_ptr<RenderPass> child_pass = |
| 3154 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root); | 3159 CreateTestRenderPass(child_pass_id, pass_rect, transform_to_root, |
| 3160 FilterOperations(), FilterOperations()); |
| 3155 | 3161 |
| 3156 gfx::Transform quad_to_target_transform; | 3162 gfx::Transform quad_to_target_transform; |
| 3157 SharedQuadState* shared_state = CreateTestSharedQuadState( | 3163 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 3158 quad_to_target_transform, viewport_rect, child_pass.get()); | 3164 quad_to_target_transform, viewport_rect, child_pass.get()); |
| 3159 | 3165 |
| 3160 // Draw a green quad full-size with a blue quad in the lower-right corner. | 3166 // Draw a green quad full-size with a blue quad in the lower-right corner. |
| 3161 gfx::Rect blue_rect(this->device_viewport_size_.width() * 3 / 4, | 3167 gfx::Rect blue_rect(this->device_viewport_size_.width() * 3 / 4, |
| 3162 this->device_viewport_size_.height() * 3 / 4, | 3168 this->device_viewport_size_.height() * 3 / 4, |
| 3163 this->device_viewport_size_.width() * 3 / 4, | 3169 this->device_viewport_size_.width() * 3 / 4, |
| 3164 this->device_viewport_size_.height() * 3 / 4); | 3170 this->device_viewport_size_.height() * 3 / 4); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3272 | 3278 |
| 3273 EXPECT_TRUE(this->RunPixelTest( | 3279 EXPECT_TRUE(this->RunPixelTest( |
| 3274 &pass_list, base::FilePath(FILE_PATH_LITERAL("spiral.png")), | 3280 &pass_list, base::FilePath(FILE_PATH_LITERAL("spiral.png")), |
| 3275 FuzzyPixelOffByOneComparator(true))); | 3281 FuzzyPixelOffByOneComparator(true))); |
| 3276 } | 3282 } |
| 3277 | 3283 |
| 3278 #endif // !defined(OS_ANDROID) | 3284 #endif // !defined(OS_ANDROID) |
| 3279 | 3285 |
| 3280 } // namespace | 3286 } // namespace |
| 3281 } // namespace cc | 3287 } // namespace cc |
| OLD | NEW |