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

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

Issue 2717533005: cc: RenderSurfaceImpl tile mask layer. (Closed)
Patch Set: Prevent single_texture_mask to multi_texture_mask conversion. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/software_renderer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 return shared_state; 94 return shared_state;
95 } 95 }
96 96
97 void CreateTestRenderPassDrawQuad(const SharedQuadState* shared_state, 97 void CreateTestRenderPassDrawQuad(const SharedQuadState* shared_state,
98 const gfx::Rect& rect, 98 const gfx::Rect& rect,
99 int pass_id, 99 int pass_id,
100 RenderPass* render_pass) { 100 RenderPass* render_pass) {
101 RenderPassDrawQuad* quad = 101 RenderPassDrawQuad* quad =
102 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); 102 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
103 quad->SetNew(shared_state, rect, rect, pass_id, 103 quad->SetNew(shared_state, rect, rect, pass_id,
104 0, // mask_resource_id 104 0, // mask_resource_id
105 gfx::RectF(), // mask_uv_rect 105 gfx::RectF(), // mask_uv_rect
106 gfx::Size(), // mask_texture_size 106 gfx::Size(), // mask_texture_size
107 gfx::Vector2dF(), // filters scale 107 gfx::Vector2dF(), // filters scale
108 gfx::PointF(), // filter origin 108 gfx::PointF(), // filter origin
109 gfx::RectF()); // tex_coord_rect 109 gfx::RectF(rect)); // tex_coord_rect
110 } 110 }
111 111
112 void CreateTestTwoColoredTextureDrawQuad(const gfx::Rect& rect, 112 void CreateTestTwoColoredTextureDrawQuad(const gfx::Rect& rect,
113 SkColor texel_color, 113 SkColor texel_color,
114 SkColor texel_stripe_color, 114 SkColor texel_stripe_color,
115 SkColor background_color, 115 SkColor background_color,
116 bool premultiplied_alpha, 116 bool premultiplied_alpha,
117 const SharedQuadState* shared_state, 117 const SharedQuadState* shared_state,
118 ResourceProvider* resource_provider, 118 ResourceProvider* resource_provider,
119 RenderPass* render_pass) { 119 RenderPass* render_pass) {
(...skipping 1464 matching lines...) Expand 10 before | Expand all | Expand 10 after
1584 SolidColorDrawQuad* white = 1584 SolidColorDrawQuad* white =
1585 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1585 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1586 white->SetNew( 1586 white->SetNew(
1587 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); 1587 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false);
1588 1588
1589 SharedQuadState* pass_shared_state = 1589 SharedQuadState* pass_shared_state =
1590 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); 1590 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get());
1591 1591
1592 RenderPassDrawQuad* render_pass_quad = 1592 RenderPassDrawQuad* render_pass_quad =
1593 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); 1593 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
1594 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, 1594 render_pass_quad->SetNew(
1595 child_pass_id, 0, gfx::RectF(), gfx::Size(), 1595 pass_shared_state, pass_rect, pass_rect, child_pass_id, 0, gfx::RectF(),
1596 gfx::Vector2dF(), gfx::PointF(), gfx::RectF()); 1596 gfx::Size(), gfx::Vector2dF(), gfx::PointF(), gfx::RectF(pass_rect));
1597 1597
1598 RenderPassList pass_list; 1598 RenderPassList pass_list;
1599 pass_list.push_back(std::move(child_pass)); 1599 pass_list.push_back(std::move(child_pass));
1600 pass_list.push_back(std::move(root_pass)); 1600 pass_list.push_back(std::move(root_pass));
1601 1601
1602 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl 1602 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl
1603 // renderer so use a fuzzy comparator. 1603 // renderer so use a fuzzy comparator.
1604 EXPECT_TRUE(this->RunPixelTest( 1604 EXPECT_TRUE(this->RunPixelTest(
1605 &pass_list, 1605 &pass_list,
1606 base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")), 1606 base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")),
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1650 SolidColorDrawQuad* white = 1650 SolidColorDrawQuad* white =
1651 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1651 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1652 white->SetNew( 1652 white->SetNew(
1653 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); 1653 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false);
1654 1654
1655 SharedQuadState* pass_shared_state = 1655 SharedQuadState* pass_shared_state =
1656 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); 1656 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get());
1657 1657
1658 RenderPassDrawQuad* render_pass_quad = 1658 RenderPassDrawQuad* render_pass_quad =
1659 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); 1659 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
1660 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, 1660 render_pass_quad->SetNew(
1661 child_pass_id, 0, gfx::RectF(), gfx::Size(), 1661 pass_shared_state, pass_rect, pass_rect, child_pass_id, 0, gfx::RectF(),
1662 gfx::Vector2dF(), gfx::PointF(), gfx::RectF()); 1662 gfx::Size(), gfx::Vector2dF(), gfx::PointF(), gfx::RectF(pass_rect));
1663 1663
1664 RenderPassList pass_list; 1664 RenderPassList pass_list;
1665 pass_list.push_back(std::move(child_pass)); 1665 pass_list.push_back(std::move(child_pass));
1666 pass_list.push_back(std::move(root_pass)); 1666 pass_list.push_back(std::move(root_pass));
1667 1667
1668 // This test blends slightly differently with the software renderer vs. the gl 1668 // This test blends slightly differently with the software renderer vs. the gl
1669 // renderer so use a fuzzy comparator. 1669 // renderer so use a fuzzy comparator.
1670 EXPECT_TRUE(this->RunPixelTest( 1670 EXPECT_TRUE(this->RunPixelTest(
1671 &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")), 1671 &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")),
1672 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); 1672 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false)));
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1716 SolidColorDrawQuad* white = 1716 SolidColorDrawQuad* white =
1717 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1717 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1718 white->SetNew( 1718 white->SetNew(
1719 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); 1719 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false);
1720 1720
1721 SharedQuadState* pass_shared_state = 1721 SharedQuadState* pass_shared_state =
1722 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); 1722 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get());
1723 1723
1724 RenderPassDrawQuad* render_pass_quad = 1724 RenderPassDrawQuad* render_pass_quad =
1725 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); 1725 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
1726 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, 1726 render_pass_quad->SetNew(
1727 child_pass_id, 0, gfx::RectF(), gfx::Size(), 1727 pass_shared_state, pass_rect, pass_rect, child_pass_id, 0, gfx::RectF(),
1728 gfx::Vector2dF(), gfx::PointF(), gfx::RectF()); 1728 gfx::Size(), gfx::Vector2dF(), gfx::PointF(), gfx::RectF(pass_rect));
1729 1729
1730 RenderPassList pass_list; 1730 RenderPassList pass_list;
1731 pass_list.push_back(std::move(child_pass)); 1731 pass_list.push_back(std::move(child_pass));
1732 pass_list.push_back(std::move(root_pass)); 1732 pass_list.push_back(std::move(root_pass));
1733 1733
1734 // This test blends slightly differently with the software renderer vs. the gl 1734 // This test blends slightly differently with the software renderer vs. the gl
1735 // renderer so use a fuzzy comparator. 1735 // renderer so use a fuzzy comparator.
1736 EXPECT_TRUE(this->RunPixelTest( 1736 EXPECT_TRUE(this->RunPixelTest(
1737 &pass_list, 1737 &pass_list,
1738 base::FilePath(FILE_PATH_LITERAL("blue_yellow_filter_chain.png")), 1738 base::FilePath(FILE_PATH_LITERAL("blue_yellow_filter_chain.png")),
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1803 SolidColorDrawQuad* white = 1803 SolidColorDrawQuad* white =
1804 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1804 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1805 white->SetNew( 1805 white->SetNew(
1806 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); 1806 blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false);
1807 1807
1808 SharedQuadState* pass_shared_state = 1808 SharedQuadState* pass_shared_state =
1809 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); 1809 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get());
1810 1810
1811 RenderPassDrawQuad* render_pass_quad = 1811 RenderPassDrawQuad* render_pass_quad =
1812 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); 1812 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
1813 render_pass_quad->SetNew(pass_shared_state, pass_rect, pass_rect, 1813 render_pass_quad->SetNew(
1814 child_pass_id, 0, gfx::RectF(), gfx::Size(), 1814 pass_shared_state, pass_rect, pass_rect, child_pass_id, 0, gfx::RectF(),
1815 gfx::Vector2dF(), gfx::PointF(), gfx::RectF()); 1815 gfx::Size(), gfx::Vector2dF(), gfx::PointF(), gfx::RectF(pass_rect));
1816 1816
1817 RenderPassList pass_list; 1817 RenderPassList pass_list;
1818 1818
1819 pass_list.push_back(std::move(child_pass)); 1819 pass_list.push_back(std::move(child_pass));
1820 pass_list.push_back(std::move(root_pass)); 1820 pass_list.push_back(std::move(root_pass));
1821 1821
1822 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl 1822 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl
1823 // renderer so use a fuzzy comparator. 1823 // renderer so use a fuzzy comparator.
1824 EXPECT_TRUE(this->RunPixelTest( 1824 EXPECT_TRUE(this->RunPixelTest(
1825 &pass_list, 1825 &pass_list,
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
2005 RenderPassDrawQuad* mask_quad = 2005 RenderPassDrawQuad* mask_quad =
2006 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); 2006 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
2007 mask_quad->SetNew( 2007 mask_quad->SetNew(
2008 root_pass_shared_state, sub_rect, sub_rect, child_pass_id, 2008 root_pass_shared_state, sub_rect, sub_rect, child_pass_id,
2009 mask_resource_id, 2009 mask_resource_id,
2010 gfx::ScaleRect(gfx::RectF(sub_rect), 2.f / mask_rect.width(), 2010 gfx::ScaleRect(gfx::RectF(sub_rect), 2.f / mask_rect.width(),
2011 2.f / mask_rect.height()), // mask_uv_rect 2011 2.f / mask_rect.height()), // mask_uv_rect
2012 gfx::Size(mask_rect.size()), // mask_texture_size 2012 gfx::Size(mask_rect.size()), // mask_texture_size
2013 gfx::Vector2dF(), // filters scale 2013 gfx::Vector2dF(), // filters scale
2014 gfx::PointF(), // filter origin 2014 gfx::PointF(), // filter origin
2015 gfx::RectF()); // tex_coord_rect 2015 gfx::RectF(sub_rect)); // tex_coord_rect
2016 2016
2017 // White background behind the masked render pass. 2017 // White background behind the masked render pass.
2018 SolidColorDrawQuad* white = 2018 SolidColorDrawQuad* white =
2019 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 2019 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
2020 white->SetNew(root_pass_shared_state, 2020 white->SetNew(root_pass_shared_state,
2021 viewport_rect, 2021 viewport_rect,
2022 viewport_rect, 2022 viewport_rect,
2023 SK_ColorWHITE, 2023 SK_ColorWHITE,
2024 false); 2024 false);
2025 2025
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
2100 RenderPassDrawQuad* mask_quad = 2100 RenderPassDrawQuad* mask_quad =
2101 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); 2101 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
2102 mask_quad->SetNew( 2102 mask_quad->SetNew(
2103 root_pass_shared_state, sub_rect, sub_rect, child_pass_id, 2103 root_pass_shared_state, sub_rect, sub_rect, child_pass_id,
2104 mask_resource_id, 2104 mask_resource_id,
2105 gfx::ScaleRect(gfx::RectF(sub_rect), 2.f / mask_rect.width(), 2105 gfx::ScaleRect(gfx::RectF(sub_rect), 2.f / mask_rect.width(),
2106 2.f / mask_rect.height()), // mask_uv_rect 2106 2.f / mask_rect.height()), // mask_uv_rect
2107 gfx::Size(mask_rect.size()), // mask_texture_size 2107 gfx::Size(mask_rect.size()), // mask_texture_size
2108 gfx::Vector2dF(), // filters scale 2108 gfx::Vector2dF(), // filters scale
2109 gfx::PointF(), // filter origin 2109 gfx::PointF(), // filter origin
2110 gfx::RectF()); // tex_coord_rect 2110 gfx::RectF(sub_rect)); // tex_coord_rect
2111 2111
2112 // White background behind the masked render pass. 2112 // White background behind the masked render pass.
2113 SolidColorDrawQuad* white = 2113 SolidColorDrawQuad* white =
2114 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 2114 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
2115 white->SetNew(root_pass_shared_state, viewport_rect, viewport_rect, 2115 white->SetNew(root_pass_shared_state, viewport_rect, viewport_rect,
2116 SK_ColorWHITE, false); 2116 SK_ColorWHITE, false);
2117 2117
2118 RenderPassList pass_list; 2118 RenderPassList pass_list;
2119 pass_list.push_back(std::move(child_pass)); 2119 pass_list.push_back(std::move(child_pass));
2120 pass_list.push_back(std::move(root_pass)); 2120 pass_list.push_back(std::move(root_pass));
(...skipping 1451 matching lines...) Expand 10 before | Expand all | Expand 10 after
3572 INSTANTIATE_TEST_CASE_P( 3572 INSTANTIATE_TEST_CASE_P(
3573 ToColorSpace, 3573 ToColorSpace,
3574 ColorTransformPixelTest, 3574 ColorTransformPixelTest,
3575 testing::Combine(testing::ValuesIn(intermediate_color_spaces), 3575 testing::Combine(testing::ValuesIn(intermediate_color_spaces),
3576 testing::ValuesIn(dst_color_spaces))); 3576 testing::ValuesIn(dst_color_spaces)));
3577 3577
3578 #endif // !defined(OS_ANDROID) 3578 #endif // !defined(OS_ANDROID)
3579 3579
3580 } // namespace 3580 } // namespace
3581 } // namespace cc 3581 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/software_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698