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

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

Issue 941433002: cc: Remove unused PictureDrawQuad support from GLRenderer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rm-picturedrawquad: . Created 5 years, 10 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "cc/layers/append_quads_data.h" 6 #include "cc/layers/append_quads_data.h"
7 #include "cc/output/gl_renderer.h" 7 #include "cc/output/gl_renderer.h"
8 #include "cc/quads/draw_quad.h" 8 #include "cc/quads/draw_quad.h"
9 #include "cc/quads/picture_draw_quad.h" 9 #include "cc/quads/picture_draw_quad.h"
10 #include "cc/quads/texture_draw_quad.h" 10 #include "cc/quads/texture_draw_quad.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 false); // nearest_neighbor 156 false); // nearest_neighbor
157 } 157 }
158 158
159 typedef ::testing::Types<GLRenderer, 159 typedef ::testing::Types<GLRenderer,
160 SoftwareRenderer, 160 SoftwareRenderer,
161 GLRendererWithExpandedViewport, 161 GLRendererWithExpandedViewport,
162 SoftwareRendererWithExpandedViewport> RendererTypes; 162 SoftwareRendererWithExpandedViewport> RendererTypes;
163 TYPED_TEST_CASE(RendererPixelTest, RendererTypes); 163 TYPED_TEST_CASE(RendererPixelTest, RendererTypes);
164 164
165 template <typename RendererType> 165 template <typename RendererType>
166 class SoftwareRendererPixelTest : public RendererPixelTest<RendererType> {};
167
168 typedef ::testing::Types<SoftwareRenderer, SoftwareRendererWithExpandedViewport>
169 SoftwareRendererTypes;
170 TYPED_TEST_CASE(SoftwareRendererPixelTest, SoftwareRendererTypes);
171
172 template <typename RendererType>
166 class FuzzyForSoftwareOnlyPixelComparator : public PixelComparator { 173 class FuzzyForSoftwareOnlyPixelComparator : public PixelComparator {
167 public: 174 public:
168 explicit FuzzyForSoftwareOnlyPixelComparator(bool discard_alpha) 175 explicit FuzzyForSoftwareOnlyPixelComparator(bool discard_alpha)
169 : fuzzy_(discard_alpha), exact_(discard_alpha) {} 176 : fuzzy_(discard_alpha), exact_(discard_alpha) {}
170 177
171 bool Compare(const SkBitmap& actual_bmp, 178 bool Compare(const SkBitmap& actual_bmp,
172 const SkBitmap& expected_bmp) const override; 179 const SkBitmap& expected_bmp) const override;
173 180
174 private: 181 private:
175 FuzzyPixelOffByOneComparator fuzzy_; 182 FuzzyPixelOffByOneComparator fuzzy_;
(...skipping 1644 matching lines...) Expand 10 before | Expand all | Expand 10 after
1820 1827
1821 RenderPassList pass_list; 1828 RenderPassList pass_list;
1822 pass_list.push_back(pass.Pass()); 1829 pass_list.push_back(pass.Pass());
1823 1830
1824 EXPECT_TRUE(this->RunPixelTest( 1831 EXPECT_TRUE(this->RunPixelTest(
1825 &pass_list, 1832 &pass_list,
1826 base::FilePath(FILE_PATH_LITERAL("anti_aliasing_perspective.png")), 1833 base::FilePath(FILE_PATH_LITERAL("anti_aliasing_perspective.png")),
1827 FuzzyPixelOffByOneComparator(true))); 1834 FuzzyPixelOffByOneComparator(true)));
1828 } 1835 }
1829 1836
1830 TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) { 1837 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadIdentityScale) {
1831 gfx::Size pile_tile_size(1000, 1000); 1838 gfx::Size pile_tile_size(1000, 1000);
1832 gfx::Rect viewport(this->device_viewport_size_); 1839 gfx::Rect viewport(this->device_viewport_size_);
1833 // TODO(enne): the renderer should figure this out on its own. 1840 // TODO(enne): the renderer should figure this out on its own.
1834 ResourceFormat texture_format = RGBA_8888; 1841 ResourceFormat texture_format = RGBA_8888;
1835 bool nearest_neighbor = false; 1842 bool nearest_neighbor = false;
1836 1843
1837 RenderPassId id(1, 1); 1844 RenderPassId id(1, 1);
1838 gfx::Transform transform_to_root; 1845 gfx::Transform transform_to_root;
1839 scoped_ptr<RenderPass> pass = 1846 scoped_ptr<RenderPass> pass =
1840 CreateTestRenderPass(id, viewport, transform_to_root); 1847 CreateTestRenderPass(id, viewport, transform_to_root);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1900 RenderPassList pass_list; 1907 RenderPassList pass_list;
1901 pass_list.push_back(pass.Pass()); 1908 pass_list.push_back(pass.Pass());
1902 1909
1903 EXPECT_TRUE(this->RunPixelTest( 1910 EXPECT_TRUE(this->RunPixelTest(
1904 &pass_list, 1911 &pass_list,
1905 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")), 1912 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")),
1906 ExactPixelComparator(true))); 1913 ExactPixelComparator(true)));
1907 } 1914 }
1908 1915
1909 // Not WithSkiaGPUBackend since that path currently requires tiles for opacity. 1916 // Not WithSkiaGPUBackend since that path currently requires tiles for opacity.
1910 TYPED_TEST(RendererPixelTest, PictureDrawQuadOpacity) { 1917 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadOpacity) {
1911 gfx::Size pile_tile_size(1000, 1000); 1918 gfx::Size pile_tile_size(1000, 1000);
1912 gfx::Rect viewport(this->device_viewport_size_); 1919 gfx::Rect viewport(this->device_viewport_size_);
1913 ResourceFormat texture_format = RGBA_8888; 1920 ResourceFormat texture_format = RGBA_8888;
1914 bool nearest_neighbor = false; 1921 bool nearest_neighbor = false;
1915 1922
1916 RenderPassId id(1, 1); 1923 RenderPassId id(1, 1);
1917 gfx::Transform transform_to_root; 1924 gfx::Transform transform_to_root;
1918 scoped_ptr<RenderPass> pass = 1925 scoped_ptr<RenderPass> pass =
1919 CreateTestRenderPass(id, viewport, transform_to_root); 1926 CreateTestRenderPass(id, viewport, transform_to_root);
1920 1927
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1977 return true; 1984 return true;
1978 } 1985 }
1979 1986
1980 template<> 1987 template<>
1981 bool IsSoftwareRenderer<SoftwareRendererWithExpandedViewport>() { 1988 bool IsSoftwareRenderer<SoftwareRendererWithExpandedViewport>() {
1982 return true; 1989 return true;
1983 } 1990 }
1984 1991
1985 // If we disable image filtering, then a 2x2 bitmap should appear as four 1992 // If we disable image filtering, then a 2x2 bitmap should appear as four
1986 // huge sharp squares. 1993 // huge sharp squares.
1987 TYPED_TEST(RendererPixelTest, PictureDrawQuadDisableImageFiltering) { 1994 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadDisableImageFiltering) {
1988 // We only care about this in software mode since bilinear filtering is 1995 // We only care about this in software mode since bilinear filtering is
1989 // cheap in hardware. 1996 // cheap in hardware.
1990 if (!IsSoftwareRenderer<TypeParam>()) 1997 if (!IsSoftwareRenderer<TypeParam>())
1991 return; 1998 return;
1992 1999
1993 gfx::Size pile_tile_size(1000, 1000); 2000 gfx::Size pile_tile_size(1000, 1000);
1994 gfx::Rect viewport(this->device_viewport_size_); 2001 gfx::Rect viewport(this->device_viewport_size_);
1995 ResourceFormat texture_format = RGBA_8888; 2002 ResourceFormat texture_format = RGBA_8888;
1996 bool nearest_neighbor = false; 2003 bool nearest_neighbor = false;
1997 2004
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
2034 2041
2035 this->disable_picture_quad_image_filtering_ = true; 2042 this->disable_picture_quad_image_filtering_ = true;
2036 2043
2037 EXPECT_TRUE(this->RunPixelTest( 2044 EXPECT_TRUE(this->RunPixelTest(
2038 &pass_list, 2045 &pass_list,
2039 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 2046 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
2040 ExactPixelComparator(true))); 2047 ExactPixelComparator(true)));
2041 } 2048 }
2042 2049
2043 // This disables filtering by setting |nearest_neighbor| on the PictureDrawQuad. 2050 // This disables filtering by setting |nearest_neighbor| on the PictureDrawQuad.
2044 TYPED_TEST(RendererPixelTest, PictureDrawQuadNearestNeighbor) { 2051 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNearestNeighbor) {
2045 gfx::Size pile_tile_size(1000, 1000); 2052 gfx::Size pile_tile_size(1000, 1000);
2046 gfx::Rect viewport(this->device_viewport_size_); 2053 gfx::Rect viewport(this->device_viewport_size_);
2047 ResourceFormat texture_format = RGBA_8888; 2054 ResourceFormat texture_format = RGBA_8888;
2048 bool nearest_neighbor = true; 2055 bool nearest_neighbor = true;
2049 2056
2050 RenderPassId id(1, 1); 2057 RenderPassId id(1, 1);
2051 gfx::Transform transform_to_root; 2058 gfx::Transform transform_to_root;
2052 scoped_ptr<RenderPass> pass = 2059 scoped_ptr<RenderPass> pass =
2053 CreateTestRenderPass(id, viewport, transform_to_root); 2060 CreateTestRenderPass(id, viewport, transform_to_root);
2054 2061
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
2141 2148
2142 RenderPassList pass_list; 2149 RenderPassList pass_list;
2143 pass_list.push_back(pass.Pass()); 2150 pass_list.push_back(pass.Pass());
2144 2151
2145 EXPECT_TRUE(this->RunPixelTest( 2152 EXPECT_TRUE(this->RunPixelTest(
2146 &pass_list, 2153 &pass_list,
2147 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 2154 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
2148 ExactPixelComparator(true))); 2155 ExactPixelComparator(true)));
2149 } 2156 }
2150 2157
2151 TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) { 2158 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNonIdentityScale) {
2152 gfx::Size pile_tile_size(1000, 1000); 2159 gfx::Size pile_tile_size(1000, 1000);
2153 gfx::Rect viewport(this->device_viewport_size_); 2160 gfx::Rect viewport(this->device_viewport_size_);
2154 // TODO(enne): the renderer should figure this out on its own. 2161 // TODO(enne): the renderer should figure this out on its own.
2155 ResourceFormat texture_format = RGBA_8888; 2162 ResourceFormat texture_format = RGBA_8888;
2156 bool nearest_neighbor = false; 2163 bool nearest_neighbor = false;
2157 2164
2158 RenderPassId id(1, 1); 2165 RenderPassId id(1, 1);
2159 gfx::Transform transform_to_root; 2166 gfx::Transform transform_to_root;
2160 scoped_ptr<RenderPass> pass = 2167 scoped_ptr<RenderPass> pass =
2161 CreateTestRenderPass(id, viewport, transform_to_root); 2168 CreateTestRenderPass(id, viewport, transform_to_root);
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
2442 this->device_viewport_size_.width() / 2, 2449 this->device_viewport_size_.width() / 2,
2443 this->device_viewport_size_.height() / 2); 2450 this->device_viewport_size_.height() / 2);
2444 EXPECT_TRUE(this->RunPixelTestWithReadbackTargetAndArea( 2451 EXPECT_TRUE(this->RunPixelTestWithReadbackTargetAndArea(
2445 &pass_list, 2452 &pass_list,
2446 pass_list.front(), 2453 pass_list.front(),
2447 base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")), 2454 base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")),
2448 ExactPixelComparator(true), 2455 ExactPixelComparator(true),
2449 &capture_rect)); 2456 &capture_rect));
2450 } 2457 }
2451 2458
2452 TEST_F(GLRendererPixelTest, PictureDrawQuadTexture4444) {
2453 gfx::Size pile_tile_size(1000, 1000);
2454 gfx::Rect viewport(this->device_viewport_size_);
2455 ResourceFormat texture_format = RGBA_4444;
2456 bool nearest_neighbor = false;
2457
2458 RenderPassId id(1, 1);
2459 gfx::Transform transform_to_root;
2460 scoped_ptr<RenderPass> pass =
2461 CreateTestRenderPass(id, viewport, transform_to_root);
2462
2463 // One viewport-filling blue quad
2464 scoped_ptr<FakePicturePile> blue_recording =
2465 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size());
2466 SkPaint blue_paint;
2467 blue_paint.setColor(SK_ColorBLUE);
2468 blue_recording->add_draw_rect_with_paint(viewport, blue_paint);
2469 blue_recording->RerecordPile();
2470 scoped_refptr<FakePicturePileImpl> blue_pile =
2471 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr);
2472
2473 gfx::Transform blue_content_to_target_transform;
2474 SharedQuadState* blue_shared_state = CreateTestSharedQuadState(
2475 blue_content_to_target_transform, viewport, pass.get());
2476
2477 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
2478 blue_quad->SetNew(blue_shared_state, viewport, gfx::Rect(), viewport,
2479 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(),
2480 nearest_neighbor, texture_format, viewport, 1.f,
2481 blue_pile.get());
2482
2483 RenderPassList pass_list;
2484 pass_list.push_back(pass.Pass());
2485
2486 EXPECT_TRUE(this->RunPixelTest(&pass_list,
2487 base::FilePath(FILE_PATH_LITERAL("blue.png")),
2488 ExactPixelComparator(true)));
2489 }
2490
2491 TYPED_TEST(RendererPixelTest, WrapModeRepeat) { 2459 TYPED_TEST(RendererPixelTest, WrapModeRepeat) {
2492 gfx::Rect rect(this->device_viewport_size_); 2460 gfx::Rect rect(this->device_viewport_size_);
2493 2461
2494 RenderPassId id(1, 1); 2462 RenderPassId id(1, 1);
2495 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 2463 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
2496 2464
2497 SharedQuadState* shared_state = 2465 SharedQuadState* shared_state =
2498 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 2466 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
2499 2467
2500 gfx::Rect texture_rect(4, 4); 2468 gfx::Rect texture_rect(4, 4);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
2548 EXPECT_TRUE(this->RunPixelTest( 2516 EXPECT_TRUE(this->RunPixelTest(
2549 &pass_list, 2517 &pass_list,
2550 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), 2518 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")),
2551 FuzzyPixelOffByOneComparator(true))); 2519 FuzzyPixelOffByOneComparator(true)));
2552 } 2520 }
2553 2521
2554 #endif // !defined(OS_ANDROID) 2522 #endif // !defined(OS_ANDROID)
2555 2523
2556 } // namespace 2524 } // namespace
2557 } // namespace cc 2525 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698