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

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

Issue 1455023002: cc: Replace Pass() with std::move() in some subdirs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pass-cc
Patch Set: pass-cc2: . Created 5 years, 1 month 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/overlay_unittest.cc ('k') | cc/output/renderer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "cc/output/gl_renderer.h" 6 #include "cc/output/gl_renderer.h"
7 #include "cc/quads/draw_quad.h" 7 #include "cc/quads/draw_quad.h"
8 #include "cc/quads/picture_draw_quad.h" 8 #include "cc/quads/picture_draw_quad.h"
9 #include "cc/quads/texture_draw_quad.h" 9 #include "cc/quads/texture_draw_quad.h"
10 #include "cc/resources/video_resource_updater.h" 10 #include "cc/resources/video_resource_updater.h"
(...skipping 16 matching lines...) Expand all
27 namespace { 27 namespace {
28 28
29 #if !defined(OS_ANDROID) 29 #if !defined(OS_ANDROID)
30 scoped_ptr<RenderPass> CreateTestRootRenderPass(RenderPassId id, 30 scoped_ptr<RenderPass> CreateTestRootRenderPass(RenderPassId id,
31 const gfx::Rect& rect) { 31 const gfx::Rect& rect) {
32 scoped_ptr<RenderPass> pass = RenderPass::Create(); 32 scoped_ptr<RenderPass> pass = RenderPass::Create();
33 const gfx::Rect output_rect = rect; 33 const gfx::Rect output_rect = rect;
34 const gfx::Rect damage_rect = rect; 34 const gfx::Rect damage_rect = rect;
35 const gfx::Transform transform_to_root_target; 35 const gfx::Transform transform_to_root_target;
36 pass->SetNew(id, output_rect, damage_rect, transform_to_root_target); 36 pass->SetNew(id, output_rect, damage_rect, transform_to_root_target);
37 return pass.Pass(); 37 return pass;
38 } 38 }
39 39
40 scoped_ptr<RenderPass> CreateTestRenderPass( 40 scoped_ptr<RenderPass> CreateTestRenderPass(
41 RenderPassId id, 41 RenderPassId id,
42 const gfx::Rect& rect, 42 const gfx::Rect& rect,
43 const gfx::Transform& transform_to_root_target) { 43 const gfx::Transform& transform_to_root_target) {
44 scoped_ptr<RenderPass> pass = RenderPass::Create(); 44 scoped_ptr<RenderPass> pass = RenderPass::Create();
45 const gfx::Rect output_rect = rect; 45 const gfx::Rect output_rect = rect;
46 const gfx::Rect damage_rect = rect; 46 const gfx::Rect damage_rect = rect;
47 pass->SetNew(id, output_rect, damage_rect, transform_to_root_target); 47 pass->SetNew(id, output_rect, damage_rect, transform_to_root_target);
48 return pass.Pass(); 48 return pass;
49 } 49 }
50 50
51 SharedQuadState* CreateTestSharedQuadState( 51 SharedQuadState* CreateTestSharedQuadState(
52 gfx::Transform quad_to_target_transform, 52 gfx::Transform quad_to_target_transform,
53 const gfx::Rect& rect, 53 const gfx::Rect& rect,
54 RenderPass* render_pass) { 54 RenderPass* render_pass) {
55 const gfx::Size layer_bounds = rect.size(); 55 const gfx::Size layer_bounds = rect.size();
56 const gfx::Rect visible_layer_rect = rect; 56 const gfx::Rect visible_layer_rect = rect;
57 const gfx::Rect clip_rect = rect; 57 const gfx::Rect clip_rect = rect;
58 const bool is_clipped = false; 58 const bool is_clipped = false;
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 471 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
472 472
473 SharedQuadState* shared_state = 473 SharedQuadState* shared_state =
474 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 474 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
475 475
476 SolidColorDrawQuad* color_quad = 476 SolidColorDrawQuad* color_quad =
477 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 477 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
478 color_quad->SetNew(shared_state, rect, rect, SK_ColorGREEN, false); 478 color_quad->SetNew(shared_state, rect, rect, SK_ColorGREEN, false);
479 479
480 RenderPassList pass_list; 480 RenderPassList pass_list;
481 pass_list.push_back(pass.Pass()); 481 pass_list.push_back(std::move(pass));
482 482
483 EXPECT_TRUE(this->RunPixelTest( 483 EXPECT_TRUE(this->RunPixelTest(
484 &pass_list, 484 &pass_list,
485 base::FilePath(FILE_PATH_LITERAL("green.png")), 485 base::FilePath(FILE_PATH_LITERAL("green.png")),
486 ExactPixelComparator(true))); 486 ExactPixelComparator(true)));
487 } 487 }
488 488
489 TYPED_TEST(RendererPixelTest, SimpleGreenRect_NonRootRenderPass) { 489 TYPED_TEST(RendererPixelTest, SimpleGreenRect_NonRootRenderPass) {
490 gfx::Rect rect(this->device_viewport_size_); 490 gfx::Rect rect(this->device_viewport_size_);
491 gfx::Rect small_rect(100, 100); 491 gfx::Rect small_rect(100, 100);
(...skipping 15 matching lines...) Expand all
507 507
508 SharedQuadState* root_shared_state = 508 SharedQuadState* root_shared_state =
509 CreateTestSharedQuadState(gfx::Transform(), rect, root_pass.get()); 509 CreateTestSharedQuadState(gfx::Transform(), rect, root_pass.get());
510 510
511 CreateTestRenderPassDrawQuad( 511 CreateTestRenderPassDrawQuad(
512 root_shared_state, small_rect, child_id, root_pass.get()); 512 root_shared_state, small_rect, child_id, root_pass.get());
513 513
514 RenderPass* child_pass_ptr = child_pass.get(); 514 RenderPass* child_pass_ptr = child_pass.get();
515 515
516 RenderPassList pass_list; 516 RenderPassList pass_list;
517 pass_list.push_back(child_pass.Pass()); 517 pass_list.push_back(std::move(child_pass));
518 pass_list.push_back(root_pass.Pass()); 518 pass_list.push_back(std::move(root_pass));
519 519
520 EXPECT_TRUE(this->RunPixelTestWithReadbackTarget( 520 EXPECT_TRUE(this->RunPixelTestWithReadbackTarget(
521 &pass_list, 521 &pass_list,
522 child_pass_ptr, 522 child_pass_ptr,
523 base::FilePath(FILE_PATH_LITERAL("green_small.png")), 523 base::FilePath(FILE_PATH_LITERAL("green_small.png")),
524 ExactPixelComparator(true))); 524 ExactPixelComparator(true)));
525 } 525 }
526 526
527 TYPED_TEST(RendererPixelTest, PremultipliedTextureWithoutBackground) { 527 TYPED_TEST(RendererPixelTest, PremultipliedTextureWithoutBackground) {
528 gfx::Rect rect(this->device_viewport_size_); 528 gfx::Rect rect(this->device_viewport_size_);
(...skipping 10 matching lines...) Expand all
539 true, // Premultiplied alpha. 539 true, // Premultiplied alpha.
540 shared_state, 540 shared_state,
541 this->resource_provider_.get(), 541 this->resource_provider_.get(),
542 pass.get()); 542 pass.get());
543 543
544 SolidColorDrawQuad* color_quad = 544 SolidColorDrawQuad* color_quad =
545 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 545 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
546 color_quad->SetNew(shared_state, rect, rect, SK_ColorWHITE, false); 546 color_quad->SetNew(shared_state, rect, rect, SK_ColorWHITE, false);
547 547
548 RenderPassList pass_list; 548 RenderPassList pass_list;
549 pass_list.push_back(pass.Pass()); 549 pass_list.push_back(std::move(pass));
550 550
551 EXPECT_TRUE(this->RunPixelTest( 551 EXPECT_TRUE(this->RunPixelTest(
552 &pass_list, 552 &pass_list,
553 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), 553 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")),
554 FuzzyPixelOffByOneComparator(true))); 554 FuzzyPixelOffByOneComparator(true)));
555 } 555 }
556 556
557 TYPED_TEST(RendererPixelTest, PremultipliedTextureWithBackground) { 557 TYPED_TEST(RendererPixelTest, PremultipliedTextureWithBackground) {
558 gfx::Rect rect(this->device_viewport_size_); 558 gfx::Rect rect(this->device_viewport_size_);
559 559
(...skipping 12 matching lines...) Expand all
572 this->resource_provider_.get(), 572 this->resource_provider_.get(),
573 pass.get()); 573 pass.get());
574 574
575 SharedQuadState* color_quad_state = 575 SharedQuadState* color_quad_state =
576 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 576 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
577 SolidColorDrawQuad* color_quad = 577 SolidColorDrawQuad* color_quad =
578 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 578 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
579 color_quad->SetNew(color_quad_state, rect, rect, SK_ColorWHITE, false); 579 color_quad->SetNew(color_quad_state, rect, rect, SK_ColorWHITE, false);
580 580
581 RenderPassList pass_list; 581 RenderPassList pass_list;
582 pass_list.push_back(pass.Pass()); 582 pass_list.push_back(std::move(pass));
583 583
584 EXPECT_TRUE(this->RunPixelTest( 584 EXPECT_TRUE(this->RunPixelTest(
585 &pass_list, 585 &pass_list,
586 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), 586 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")),
587 FuzzyPixelOffByOneComparator(true))); 587 FuzzyPixelOffByOneComparator(true)));
588 } 588 }
589 589
590 template <typename QuadType> 590 template <typename QuadType>
591 static const base::FilePath::CharType* IntersectingQuadImage() { 591 static const base::FilePath::CharType* IntersectingQuadImage() {
592 return FILE_PATH_LITERAL("intersecting_blue_green_squares.png"); 592 return FILE_PATH_LITERAL("intersecting_blue_green_squares.png");
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 back_quad_state_->clip_rect = quad_rect_; 640 back_quad_state_->clip_rect = quad_rect_;
641 } 641 }
642 template <typename T> 642 template <typename T>
643 void AppendBackgroundAndRunTest(const PixelComparator& comparator) { 643 void AppendBackgroundAndRunTest(const PixelComparator& comparator) {
644 SharedQuadState* background_quad_state = CreateTestSharedQuadState( 644 SharedQuadState* background_quad_state = CreateTestSharedQuadState(
645 gfx::Transform(), viewport_rect_, render_pass_.get()); 645 gfx::Transform(), viewport_rect_, render_pass_.get());
646 SolidColorDrawQuad* background_quad = 646 SolidColorDrawQuad* background_quad =
647 render_pass_->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 647 render_pass_->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
648 background_quad->SetNew(background_quad_state, viewport_rect_, 648 background_quad->SetNew(background_quad_state, viewport_rect_,
649 viewport_rect_, SK_ColorWHITE, false); 649 viewport_rect_, SK_ColorWHITE, false);
650 pass_list_.push_back(render_pass_.Pass()); 650 pass_list_.push_back(std::move(render_pass_));
651 const base::FilePath::CharType* fileName = IntersectingQuadImage<T>(); 651 const base::FilePath::CharType* fileName = IntersectingQuadImage<T>();
652 EXPECT_TRUE( 652 EXPECT_TRUE(
653 this->RunPixelTest(&pass_list_, base::FilePath(fileName), comparator)); 653 this->RunPixelTest(&pass_list_, base::FilePath(fileName), comparator));
654 } 654 }
655 template <typename T> 655 template <typename T>
656 T* CreateAndAppendDrawQuad() { 656 T* CreateAndAppendDrawQuad() {
657 return render_pass_->CreateAndAppendDrawQuad<T>(); 657 return render_pass_->CreateAndAppendDrawQuad<T>();
658 } 658 }
659 659
660 scoped_ptr<RenderPass> render_pass_; 660 scoped_ptr<RenderPass> render_pass_;
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 this->quad_rect_, GetColor<TypeParam>(SkColorSetARGB(255, 0, 255, 0)), 823 this->quad_rect_, GetColor<TypeParam>(SkColorSetARGB(255, 0, 255, 0)),
824 GetColor<TypeParam>(SkColorSetARGB(255, 0, 0, 0)), SK_ColorTRANSPARENT, 824 GetColor<TypeParam>(SkColorSetARGB(255, 0, 0, 0)), SK_ColorTRANSPARENT,
825 true, child2_quad_state, this->resource_provider_.get(), 825 true, child2_quad_state, this->resource_provider_.get(),
826 child_pass2.get()); 826 child_pass2.get());
827 827
828 CreateTestRenderPassDrawQuad(this->front_quad_state_, this->quad_rect_, 828 CreateTestRenderPassDrawQuad(this->front_quad_state_, this->quad_rect_,
829 child_pass_id1, this->render_pass_.get()); 829 child_pass_id1, this->render_pass_.get());
830 CreateTestRenderPassDrawQuad(this->back_quad_state_, this->quad_rect_, 830 CreateTestRenderPassDrawQuad(this->back_quad_state_, this->quad_rect_,
831 child_pass_id2, this->render_pass_.get()); 831 child_pass_id2, this->render_pass_.get());
832 832
833 this->pass_list_.push_back(child_pass1.Pass()); 833 this->pass_list_.push_back(std::move(child_pass1));
834 this->pass_list_.push_back(child_pass2.Pass()); 834 this->pass_list_.push_back(std::move(child_pass2));
835 SCOPED_TRACE("IntersectingRenderQuadsPass"); 835 SCOPED_TRACE("IntersectingRenderQuadsPass");
836 this->template AppendBackgroundAndRunTest<RenderPassDrawQuad>( 836 this->template AppendBackgroundAndRunTest<RenderPassDrawQuad>(
837 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f)); 837 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f));
838 } 838 }
839 839
840 TYPED_TEST(IntersectingQuadGLPixelTest, YUVVideoQuads) { 840 TYPED_TEST(IntersectingQuadGLPixelTest, YUVVideoQuads) {
841 this->SetupQuadStateAndRenderPass(); 841 this->SetupQuadStateAndRenderPass();
842 gfx::Rect inner_rect( 842 gfx::Rect inner_rect(
843 ((this->quad_rect_.x() + (this->quad_rect_.width() / 4)) & ~0xF), 843 ((this->quad_rect_.x() + (this->quad_rect_.width() / 4)) & ~0xF),
844 ((this->quad_rect_.y() + (this->quad_rect_.height() / 4)) & ~0xF), 844 ((this->quad_rect_.y() + (this->quad_rect_.height() / 4)) & ~0xF),
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
880 false, // Premultiplied alpha. 880 false, // Premultiplied alpha.
881 shared_state, 881 shared_state,
882 this->resource_provider_.get(), 882 this->resource_provider_.get(),
883 pass.get()); 883 pass.get());
884 884
885 SolidColorDrawQuad* color_quad = 885 SolidColorDrawQuad* color_quad =
886 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 886 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
887 color_quad->SetNew(shared_state, rect, rect, SK_ColorWHITE, false); 887 color_quad->SetNew(shared_state, rect, rect, SK_ColorWHITE, false);
888 888
889 RenderPassList pass_list; 889 RenderPassList pass_list;
890 pass_list.push_back(pass.Pass()); 890 pass_list.push_back(std::move(pass));
891 891
892 EXPECT_TRUE(this->RunPixelTest( 892 EXPECT_TRUE(this->RunPixelTest(
893 &pass_list, 893 &pass_list,
894 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), 894 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")),
895 FuzzyPixelOffByOneComparator(true))); 895 FuzzyPixelOffByOneComparator(true)));
896 } 896 }
897 897
898 // TODO(skaslev): The software renderer does not support non-premultplied alpha. 898 // TODO(skaslev): The software renderer does not support non-premultplied alpha.
899 TEST_F(GLRendererPixelTest, NonPremultipliedTextureWithBackground) { 899 TEST_F(GLRendererPixelTest, NonPremultipliedTextureWithBackground) {
900 gfx::Rect rect(this->device_viewport_size_); 900 gfx::Rect rect(this->device_viewport_size_);
(...skipping 13 matching lines...) Expand all
914 this->resource_provider_.get(), 914 this->resource_provider_.get(),
915 pass.get()); 915 pass.get());
916 916
917 SharedQuadState* color_quad_state = 917 SharedQuadState* color_quad_state =
918 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 918 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
919 SolidColorDrawQuad* color_quad = 919 SolidColorDrawQuad* color_quad =
920 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 920 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
921 color_quad->SetNew(color_quad_state, rect, rect, SK_ColorWHITE, false); 921 color_quad->SetNew(color_quad_state, rect, rect, SK_ColorWHITE, false);
922 922
923 RenderPassList pass_list; 923 RenderPassList pass_list;
924 pass_list.push_back(pass.Pass()); 924 pass_list.push_back(std::move(pass));
925 925
926 EXPECT_TRUE(this->RunPixelTest( 926 EXPECT_TRUE(this->RunPixelTest(
927 &pass_list, 927 &pass_list,
928 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), 928 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")),
929 FuzzyPixelOffByOneComparator(true))); 929 FuzzyPixelOffByOneComparator(true)));
930 } 930 }
931 931
932 class VideoGLRendererPixelTest : public GLRendererPixelTest { 932 class VideoGLRendererPixelTest : public GLRendererPixelTest {
933 protected: 933 protected:
934 void CreateEdgeBleedPass(media::VideoPixelFormat format, 934 void CreateEdgeBleedPass(media::VideoPixelFormat format,
(...skipping 23 matching lines...) Expand all
958 // YUV of (149,43,21) should be green (0,255,0) in RGB. 958 // YUV of (149,43,21) should be green (0,255,0) in RGB.
959 // Create a video frame that has a non-green background rect, with a 959 // Create a video frame that has a non-green background rect, with a
960 // green sub-rectangle that should be the only thing displayed in 960 // green sub-rectangle that should be the only thing displayed in
961 // the final image. Bleeding will appear on all four sides of the video 961 // the final image. Bleeding will appear on all four sides of the video
962 // if the tex coords are not clamped. 962 // if the tex coords are not clamped.
963 CreateTestYUVVideoDrawQuad_TwoColor( 963 CreateTestYUVVideoDrawQuad_TwoColor(
964 shared_state, format, color_space, false, tex_coord_rect, 964 shared_state, format, color_space, false, tex_coord_rect,
965 background_size, gfx::Rect(background_size), 128, 128, 128, green_rect, 965 background_size, gfx::Rect(background_size), 128, 128, 128, green_rect,
966 149, 43, 21, pass.get(), video_resource_updater_.get(), 966 149, 43, 21, pass.get(), video_resource_updater_.get(),
967 resource_provider_.get()); 967 resource_provider_.get());
968 pass_list->push_back(pass.Pass()); 968 pass_list->push_back(std::move(pass));
969 } 969 }
970 970
971 void SetUp() override { 971 void SetUp() override {
972 GLRendererPixelTest::SetUp(); 972 GLRendererPixelTest::SetUp();
973 video_resource_updater_.reset(new VideoResourceUpdater( 973 video_resource_updater_.reset(new VideoResourceUpdater(
974 output_surface_->context_provider(), resource_provider_.get())); 974 output_surface_->context_provider(), resource_provider_.get()));
975 } 975 }
976 976
977 scoped_ptr<VideoResourceUpdater> video_resource_updater_; 977 scoped_ptr<VideoResourceUpdater> video_resource_updater_;
978 }; 978 };
979 979
980 TEST_F(VideoGLRendererPixelTest, SimpleYUVRect) { 980 TEST_F(VideoGLRendererPixelTest, SimpleYUVRect) {
981 gfx::Rect rect(this->device_viewport_size_); 981 gfx::Rect rect(this->device_viewport_size_);
982 982
983 RenderPassId id(1, 1); 983 RenderPassId id(1, 1);
984 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 984 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
985 985
986 SharedQuadState* shared_state = 986 SharedQuadState* shared_state =
987 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 987 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
988 988
989 CreateTestYUVVideoDrawQuad_Striped(shared_state, media::PIXEL_FORMAT_YV12, 989 CreateTestYUVVideoDrawQuad_Striped(shared_state, media::PIXEL_FORMAT_YV12,
990 false, gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), 990 false, gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f),
991 pass.get(), video_resource_updater_.get(), 991 pass.get(), video_resource_updater_.get(),
992 rect, rect, resource_provider_.get()); 992 rect, rect, resource_provider_.get());
993 993
994 RenderPassList pass_list; 994 RenderPassList pass_list;
995 pass_list.push_back(pass.Pass()); 995 pass_list.push_back(std::move(pass));
996 996
997 EXPECT_TRUE( 997 EXPECT_TRUE(
998 this->RunPixelTest(&pass_list, 998 this->RunPixelTest(&pass_list,
999 base::FilePath(FILE_PATH_LITERAL("yuv_stripes.png")), 999 base::FilePath(FILE_PATH_LITERAL("yuv_stripes.png")),
1000 FuzzyPixelOffByOneComparator(true))); 1000 FuzzyPixelOffByOneComparator(true)));
1001 } 1001 }
1002 1002
1003 TEST_F(VideoGLRendererPixelTest, ClippedYUVRect) { 1003 TEST_F(VideoGLRendererPixelTest, ClippedYUVRect) {
1004 gfx::Rect viewport(this->device_viewport_size_); 1004 gfx::Rect viewport(this->device_viewport_size_);
1005 gfx::Rect draw_rect(this->device_viewport_size_.width() * 1.5, 1005 gfx::Rect draw_rect(this->device_viewport_size_.width() * 1.5,
1006 this->device_viewport_size_.height() * 1.5); 1006 this->device_viewport_size_.height() * 1.5);
1007 1007
1008 RenderPassId id(1, 1); 1008 RenderPassId id(1, 1);
1009 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, viewport); 1009 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, viewport);
1010 1010
1011 SharedQuadState* shared_state = 1011 SharedQuadState* shared_state =
1012 CreateTestSharedQuadState(gfx::Transform(), viewport, pass.get()); 1012 CreateTestSharedQuadState(gfx::Transform(), viewport, pass.get());
1013 1013
1014 CreateTestYUVVideoDrawQuad_Striped(shared_state, media::PIXEL_FORMAT_YV12, 1014 CreateTestYUVVideoDrawQuad_Striped(shared_state, media::PIXEL_FORMAT_YV12,
1015 false, gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), 1015 false, gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f),
1016 pass.get(), video_resource_updater_.get(), 1016 pass.get(), video_resource_updater_.get(),
1017 draw_rect, viewport, 1017 draw_rect, viewport,
1018 resource_provider_.get()); 1018 resource_provider_.get());
1019 RenderPassList pass_list; 1019 RenderPassList pass_list;
1020 pass_list.push_back(pass.Pass()); 1020 pass_list.push_back(std::move(pass));
1021 1021
1022 EXPECT_TRUE(this->RunPixelTest( 1022 EXPECT_TRUE(this->RunPixelTest(
1023 &pass_list, base::FilePath(FILE_PATH_LITERAL("yuv_stripes_clipped.png")), 1023 &pass_list, base::FilePath(FILE_PATH_LITERAL("yuv_stripes_clipped.png")),
1024 FuzzyPixelOffByOneComparator(true))); 1024 FuzzyPixelOffByOneComparator(true)));
1025 } 1025 }
1026 1026
1027 TEST_F(VideoGLRendererPixelTest, OffsetYUVRect) { 1027 TEST_F(VideoGLRendererPixelTest, OffsetYUVRect) {
1028 gfx::Rect rect(this->device_viewport_size_); 1028 gfx::Rect rect(this->device_viewport_size_);
1029 1029
1030 RenderPassId id(1, 1); 1030 RenderPassId id(1, 1);
1031 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 1031 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
1032 1032
1033 SharedQuadState* shared_state = 1033 SharedQuadState* shared_state =
1034 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 1034 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
1035 1035
1036 // Intentionally sets frame format to I420 for testing coverage. 1036 // Intentionally sets frame format to I420 for testing coverage.
1037 CreateTestYUVVideoDrawQuad_Striped( 1037 CreateTestYUVVideoDrawQuad_Striped(
1038 shared_state, media::PIXEL_FORMAT_I420, false, 1038 shared_state, media::PIXEL_FORMAT_I420, false,
1039 gfx::RectF(0.125f, 0.25f, 0.75f, 0.5f), pass.get(), 1039 gfx::RectF(0.125f, 0.25f, 0.75f, 0.5f), pass.get(),
1040 video_resource_updater_.get(), rect, rect, resource_provider_.get()); 1040 video_resource_updater_.get(), rect, rect, resource_provider_.get());
1041 1041
1042 RenderPassList pass_list; 1042 RenderPassList pass_list;
1043 pass_list.push_back(pass.Pass()); 1043 pass_list.push_back(std::move(pass));
1044 1044
1045 EXPECT_TRUE(this->RunPixelTest( 1045 EXPECT_TRUE(this->RunPixelTest(
1046 &pass_list, 1046 &pass_list,
1047 base::FilePath(FILE_PATH_LITERAL("yuv_stripes_offset.png")), 1047 base::FilePath(FILE_PATH_LITERAL("yuv_stripes_offset.png")),
1048 FuzzyPixelOffByOneComparator(true))); 1048 FuzzyPixelOffByOneComparator(true)));
1049 } 1049 }
1050 1050
1051 TEST_F(VideoGLRendererPixelTest, SimpleYUVRectBlack) { 1051 TEST_F(VideoGLRendererPixelTest, SimpleYUVRectBlack) {
1052 gfx::Rect rect(this->device_viewport_size_); 1052 gfx::Rect rect(this->device_viewport_size_);
1053 1053
1054 RenderPassId id(1, 1); 1054 RenderPassId id(1, 1);
1055 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 1055 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
1056 1056
1057 SharedQuadState* shared_state = 1057 SharedQuadState* shared_state =
1058 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 1058 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
1059 1059
1060 // In MPEG color range YUV values of (15,128,128) should produce black. 1060 // In MPEG color range YUV values of (15,128,128) should produce black.
1061 CreateTestYUVVideoDrawQuad_Solid( 1061 CreateTestYUVVideoDrawQuad_Solid(
1062 shared_state, media::PIXEL_FORMAT_YV12, media::COLOR_SPACE_UNSPECIFIED, 1062 shared_state, media::PIXEL_FORMAT_YV12, media::COLOR_SPACE_UNSPECIFIED,
1063 false, gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), 15, 128, 128, pass.get(), 1063 false, gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), 15, 128, 128, pass.get(),
1064 video_resource_updater_.get(), rect, rect, resource_provider_.get()); 1064 video_resource_updater_.get(), rect, rect, resource_provider_.get());
1065 1065
1066 RenderPassList pass_list; 1066 RenderPassList pass_list;
1067 pass_list.push_back(pass.Pass()); 1067 pass_list.push_back(std::move(pass));
1068 1068
1069 // If we didn't get black out of the YUV values above, then we probably have a 1069 // If we didn't get black out of the YUV values above, then we probably have a
1070 // color range issue. 1070 // color range issue.
1071 EXPECT_TRUE(this->RunPixelTest(&pass_list, 1071 EXPECT_TRUE(this->RunPixelTest(&pass_list,
1072 base::FilePath(FILE_PATH_LITERAL("black.png")), 1072 base::FilePath(FILE_PATH_LITERAL("black.png")),
1073 FuzzyPixelOffByOneComparator(true))); 1073 FuzzyPixelOffByOneComparator(true)));
1074 } 1074 }
1075 1075
1076 TEST_F(VideoGLRendererPixelTest, SimpleYUVJRect) { 1076 TEST_F(VideoGLRendererPixelTest, SimpleYUVJRect) {
1077 gfx::Rect rect(this->device_viewport_size_); 1077 gfx::Rect rect(this->device_viewport_size_);
1078 1078
1079 RenderPassId id(1, 1); 1079 RenderPassId id(1, 1);
1080 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 1080 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
1081 1081
1082 SharedQuadState* shared_state = 1082 SharedQuadState* shared_state =
1083 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 1083 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
1084 1084
1085 // YUV of (149,43,21) should be green (0,255,0) in RGB. 1085 // YUV of (149,43,21) should be green (0,255,0) in RGB.
1086 CreateTestYUVVideoDrawQuad_Solid( 1086 CreateTestYUVVideoDrawQuad_Solid(
1087 shared_state, media::PIXEL_FORMAT_YV12, media::COLOR_SPACE_JPEG, false, 1087 shared_state, media::PIXEL_FORMAT_YV12, media::COLOR_SPACE_JPEG, false,
1088 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), 149, 43, 21, pass.get(), 1088 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), 149, 43, 21, pass.get(),
1089 video_resource_updater_.get(), rect, rect, resource_provider_.get()); 1089 video_resource_updater_.get(), rect, rect, resource_provider_.get());
1090 1090
1091 RenderPassList pass_list; 1091 RenderPassList pass_list;
1092 pass_list.push_back(pass.Pass()); 1092 pass_list.push_back(std::move(pass));
1093 1093
1094 EXPECT_TRUE(this->RunPixelTest(&pass_list, 1094 EXPECT_TRUE(this->RunPixelTest(&pass_list,
1095 base::FilePath(FILE_PATH_LITERAL("green.png")), 1095 base::FilePath(FILE_PATH_LITERAL("green.png")),
1096 FuzzyPixelOffByOneComparator(true))); 1096 FuzzyPixelOffByOneComparator(true)));
1097 } 1097 }
1098 1098
1099 // Test that a YUV video doesn't bleed outside of its tex coords when the 1099 // Test that a YUV video doesn't bleed outside of its tex coords when the
1100 // tex coord rect is only a partial subrectangle of the coded contents. 1100 // tex coord rect is only a partial subrectangle of the coded contents.
1101 TEST_F(VideoGLRendererPixelTest, YUVEdgeBleed) { 1101 TEST_F(VideoGLRendererPixelTest, YUVEdgeBleed) {
1102 RenderPassList pass_list; 1102 RenderPassList pass_list;
(...skipping 22 matching lines...) Expand all
1125 SharedQuadState* shared_state = 1125 SharedQuadState* shared_state =
1126 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 1126 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
1127 1127
1128 // Dark grey in JPEG color range (in MPEG, this is black). 1128 // Dark grey in JPEG color range (in MPEG, this is black).
1129 CreateTestYUVVideoDrawQuad_Solid( 1129 CreateTestYUVVideoDrawQuad_Solid(
1130 shared_state, media::PIXEL_FORMAT_YV12, media::COLOR_SPACE_JPEG, false, 1130 shared_state, media::PIXEL_FORMAT_YV12, media::COLOR_SPACE_JPEG, false,
1131 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), 15, 128, 128, pass.get(), 1131 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), 15, 128, 128, pass.get(),
1132 video_resource_updater_.get(), rect, rect, resource_provider_.get()); 1132 video_resource_updater_.get(), rect, rect, resource_provider_.get());
1133 1133
1134 RenderPassList pass_list; 1134 RenderPassList pass_list;
1135 pass_list.push_back(pass.Pass()); 1135 pass_list.push_back(std::move(pass));
1136 1136
1137 EXPECT_TRUE( 1137 EXPECT_TRUE(
1138 this->RunPixelTest(&pass_list, 1138 this->RunPixelTest(&pass_list,
1139 base::FilePath(FILE_PATH_LITERAL("dark_grey.png")), 1139 base::FilePath(FILE_PATH_LITERAL("dark_grey.png")),
1140 FuzzyPixelOffByOneComparator(true))); 1140 FuzzyPixelOffByOneComparator(true)));
1141 } 1141 }
1142 1142
1143 TEST_F(VideoGLRendererPixelTest, SimpleYUVARect) { 1143 TEST_F(VideoGLRendererPixelTest, SimpleYUVARect) {
1144 gfx::Rect rect(this->device_viewport_size_); 1144 gfx::Rect rect(this->device_viewport_size_);
1145 1145
1146 RenderPassId id(1, 1); 1146 RenderPassId id(1, 1);
1147 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 1147 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
1148 1148
1149 SharedQuadState* shared_state = 1149 SharedQuadState* shared_state =
1150 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 1150 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
1151 1151
1152 CreateTestYUVVideoDrawQuad_Striped(shared_state, media::PIXEL_FORMAT_YV12A, 1152 CreateTestYUVVideoDrawQuad_Striped(shared_state, media::PIXEL_FORMAT_YV12A,
1153 false, gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), 1153 false, gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f),
1154 pass.get(), video_resource_updater_.get(), 1154 pass.get(), video_resource_updater_.get(),
1155 rect, rect, resource_provider_.get()); 1155 rect, rect, resource_provider_.get());
1156 1156
1157 SolidColorDrawQuad* color_quad = 1157 SolidColorDrawQuad* color_quad =
1158 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1158 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1159 color_quad->SetNew(shared_state, rect, rect, SK_ColorWHITE, false); 1159 color_quad->SetNew(shared_state, rect, rect, SK_ColorWHITE, false);
1160 1160
1161 RenderPassList pass_list; 1161 RenderPassList pass_list;
1162 pass_list.push_back(pass.Pass()); 1162 pass_list.push_back(std::move(pass));
1163 1163
1164 EXPECT_TRUE(this->RunPixelTest( 1164 EXPECT_TRUE(this->RunPixelTest(
1165 &pass_list, 1165 &pass_list,
1166 base::FilePath(FILE_PATH_LITERAL("yuv_stripes_alpha.png")), 1166 base::FilePath(FILE_PATH_LITERAL("yuv_stripes_alpha.png")),
1167 FuzzyPixelOffByOneComparator(true))); 1167 FuzzyPixelOffByOneComparator(true)));
1168 } 1168 }
1169 1169
1170 TEST_F(VideoGLRendererPixelTest, FullyTransparentYUVARect) { 1170 TEST_F(VideoGLRendererPixelTest, FullyTransparentYUVARect) {
1171 gfx::Rect rect(this->device_viewport_size_); 1171 gfx::Rect rect(this->device_viewport_size_);
1172 1172
1173 RenderPassId id(1, 1); 1173 RenderPassId id(1, 1);
1174 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 1174 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
1175 1175
1176 SharedQuadState* shared_state = 1176 SharedQuadState* shared_state =
1177 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 1177 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
1178 1178
1179 CreateTestYUVVideoDrawQuad_Striped(shared_state, media::PIXEL_FORMAT_YV12A, 1179 CreateTestYUVVideoDrawQuad_Striped(shared_state, media::PIXEL_FORMAT_YV12A,
1180 true, gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), 1180 true, gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f),
1181 pass.get(), video_resource_updater_.get(), 1181 pass.get(), video_resource_updater_.get(),
1182 rect, rect, resource_provider_.get()); 1182 rect, rect, resource_provider_.get());
1183 1183
1184 SolidColorDrawQuad* color_quad = 1184 SolidColorDrawQuad* color_quad =
1185 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1185 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1186 color_quad->SetNew(shared_state, rect, rect, SK_ColorBLACK, false); 1186 color_quad->SetNew(shared_state, rect, rect, SK_ColorBLACK, false);
1187 1187
1188 RenderPassList pass_list; 1188 RenderPassList pass_list;
1189 pass_list.push_back(pass.Pass()); 1189 pass_list.push_back(std::move(pass));
1190 1190
1191 EXPECT_TRUE(this->RunPixelTest( 1191 EXPECT_TRUE(this->RunPixelTest(
1192 &pass_list, 1192 &pass_list,
1193 base::FilePath(FILE_PATH_LITERAL("black.png")), 1193 base::FilePath(FILE_PATH_LITERAL("black.png")),
1194 ExactPixelComparator(true))); 1194 ExactPixelComparator(true)));
1195 } 1195 }
1196 1196
1197 TYPED_TEST(RendererPixelTest, FastPassColorFilterAlpha) { 1197 TYPED_TEST(RendererPixelTest, FastPassColorFilterAlpha) {
1198 gfx::Rect viewport_rect(this->device_viewport_size_); 1198 gfx::Rect viewport_rect(this->device_viewport_size_);
1199 1199
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1268 pass_rect, 1268 pass_rect,
1269 child_pass_id, 1269 child_pass_id,
1270 0, 1270 0,
1271 gfx::Vector2dF(), 1271 gfx::Vector2dF(),
1272 gfx::Size(), 1272 gfx::Size(),
1273 filters, 1273 filters,
1274 gfx::Vector2dF(), 1274 gfx::Vector2dF(),
1275 FilterOperations()); 1275 FilterOperations());
1276 1276
1277 RenderPassList pass_list; 1277 RenderPassList pass_list;
1278 pass_list.push_back(child_pass.Pass()); 1278 pass_list.push_back(std::move(child_pass));
1279 pass_list.push_back(root_pass.Pass()); 1279 pass_list.push_back(std::move(root_pass));
1280 1280
1281 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl 1281 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl
1282 // renderer so use a fuzzy comparator. 1282 // renderer so use a fuzzy comparator.
1283 EXPECT_TRUE(this->RunPixelTest( 1283 EXPECT_TRUE(this->RunPixelTest(
1284 &pass_list, 1284 &pass_list,
1285 base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")), 1285 base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")),
1286 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); 1286 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false)));
1287 } 1287 }
1288 1288
1289 TYPED_TEST(RendererPixelTest, FastPassSaturateFilter) { 1289 TYPED_TEST(RendererPixelTest, FastPassSaturateFilter) {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1340 pass_rect, 1340 pass_rect,
1341 child_pass_id, 1341 child_pass_id,
1342 0, 1342 0,
1343 gfx::Vector2dF(), 1343 gfx::Vector2dF(),
1344 gfx::Size(), 1344 gfx::Size(),
1345 filters, 1345 filters,
1346 gfx::Vector2dF(), 1346 gfx::Vector2dF(),
1347 FilterOperations()); 1347 FilterOperations());
1348 1348
1349 RenderPassList pass_list; 1349 RenderPassList pass_list;
1350 pass_list.push_back(child_pass.Pass()); 1350 pass_list.push_back(std::move(child_pass));
1351 pass_list.push_back(root_pass.Pass()); 1351 pass_list.push_back(std::move(root_pass));
1352 1352
1353 // This test blends slightly differently with the software renderer vs. the gl 1353 // This test blends slightly differently with the software renderer vs. the gl
1354 // renderer so use a fuzzy comparator. 1354 // renderer so use a fuzzy comparator.
1355 EXPECT_TRUE(this->RunPixelTest( 1355 EXPECT_TRUE(this->RunPixelTest(
1356 &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")), 1356 &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")),
1357 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); 1357 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false)));
1358 } 1358 }
1359 1359
1360 TYPED_TEST(RendererPixelTest, FastPassFilterChain) { 1360 TYPED_TEST(RendererPixelTest, FastPassFilterChain) {
1361 gfx::Rect viewport_rect(this->device_viewport_size_); 1361 gfx::Rect viewport_rect(this->device_viewport_size_);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1412 pass_rect, 1412 pass_rect,
1413 child_pass_id, 1413 child_pass_id,
1414 0, 1414 0,
1415 gfx::Vector2dF(), 1415 gfx::Vector2dF(),
1416 gfx::Size(), 1416 gfx::Size(),
1417 filters, 1417 filters,
1418 gfx::Vector2dF(), 1418 gfx::Vector2dF(),
1419 FilterOperations()); 1419 FilterOperations());
1420 1420
1421 RenderPassList pass_list; 1421 RenderPassList pass_list;
1422 pass_list.push_back(child_pass.Pass()); 1422 pass_list.push_back(std::move(child_pass));
1423 pass_list.push_back(root_pass.Pass()); 1423 pass_list.push_back(std::move(root_pass));
1424 1424
1425 // This test blends slightly differently with the software renderer vs. the gl 1425 // This test blends slightly differently with the software renderer vs. the gl
1426 // renderer so use a fuzzy comparator. 1426 // renderer so use a fuzzy comparator.
1427 EXPECT_TRUE(this->RunPixelTest( 1427 EXPECT_TRUE(this->RunPixelTest(
1428 &pass_list, 1428 &pass_list,
1429 base::FilePath(FILE_PATH_LITERAL("blue_yellow_filter_chain.png")), 1429 base::FilePath(FILE_PATH_LITERAL("blue_yellow_filter_chain.png")),
1430 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); 1430 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false)));
1431 } 1431 }
1432 1432
1433 TYPED_TEST(RendererPixelTest, FastPassColorFilterAlphaTranslation) { 1433 TYPED_TEST(RendererPixelTest, FastPassColorFilterAlphaTranslation) {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1508 child_pass_id, 1508 child_pass_id,
1509 0, 1509 0,
1510 gfx::Vector2dF(), 1510 gfx::Vector2dF(),
1511 gfx::Size(), 1511 gfx::Size(),
1512 filters, 1512 filters,
1513 gfx::Vector2dF(), 1513 gfx::Vector2dF(),
1514 FilterOperations()); 1514 FilterOperations());
1515 1515
1516 RenderPassList pass_list; 1516 RenderPassList pass_list;
1517 1517
1518 pass_list.push_back(child_pass.Pass()); 1518 pass_list.push_back(std::move(child_pass));
1519 pass_list.push_back(root_pass.Pass()); 1519 pass_list.push_back(std::move(root_pass));
1520 1520
1521 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl 1521 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl
1522 // renderer so use a fuzzy comparator. 1522 // renderer so use a fuzzy comparator.
1523 EXPECT_TRUE(this->RunPixelTest( 1523 EXPECT_TRUE(this->RunPixelTest(
1524 &pass_list, 1524 &pass_list,
1525 base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha_translate.png")), 1525 base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha_translate.png")),
1526 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); 1526 FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false)));
1527 } 1527 }
1528 1528
1529 TYPED_TEST(RendererPixelTest, EnlargedRenderPassTexture) { 1529 TYPED_TEST(RendererPixelTest, EnlargedRenderPassTexture) {
(...skipping 27 matching lines...) Expand all
1557 SolidColorDrawQuad* yellow = 1557 SolidColorDrawQuad* yellow =
1558 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1558 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1559 yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false); 1559 yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false);
1560 1560
1561 SharedQuadState* pass_shared_state = 1561 SharedQuadState* pass_shared_state =
1562 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); 1562 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get());
1563 CreateTestRenderPassDrawQuad( 1563 CreateTestRenderPassDrawQuad(
1564 pass_shared_state, pass_rect, child_pass_id, root_pass.get()); 1564 pass_shared_state, pass_rect, child_pass_id, root_pass.get());
1565 1565
1566 RenderPassList pass_list; 1566 RenderPassList pass_list;
1567 pass_list.push_back(child_pass.Pass()); 1567 pass_list.push_back(std::move(child_pass));
1568 pass_list.push_back(root_pass.Pass()); 1568 pass_list.push_back(std::move(root_pass));
1569 1569
1570 this->renderer_->SetEnlargePassTextureAmountForTesting(gfx::Vector2d(50, 75)); 1570 this->renderer_->SetEnlargePassTextureAmountForTesting(gfx::Vector2d(50, 75));
1571 1571
1572 EXPECT_TRUE(this->RunPixelTest( 1572 EXPECT_TRUE(this->RunPixelTest(
1573 &pass_list, 1573 &pass_list,
1574 base::FilePath(FILE_PATH_LITERAL("blue_yellow.png")), 1574 base::FilePath(FILE_PATH_LITERAL("blue_yellow.png")),
1575 ExactPixelComparator(true))); 1575 ExactPixelComparator(true)));
1576 } 1576 }
1577 1577
1578 TYPED_TEST(RendererPixelTest, EnlargedRenderPassTextureWithAntiAliasing) { 1578 TYPED_TEST(RendererPixelTest, EnlargedRenderPassTextureWithAntiAliasing) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1619 gfx::Transform(), viewport_rect, root_pass.get()); 1619 gfx::Transform(), viewport_rect, root_pass.get());
1620 SolidColorDrawQuad* background = 1620 SolidColorDrawQuad* background =
1621 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1621 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1622 background->SetNew(root_shared_state, 1622 background->SetNew(root_shared_state,
1623 gfx::Rect(this->device_viewport_size_), 1623 gfx::Rect(this->device_viewport_size_),
1624 gfx::Rect(this->device_viewport_size_), 1624 gfx::Rect(this->device_viewport_size_),
1625 SK_ColorWHITE, 1625 SK_ColorWHITE,
1626 false); 1626 false);
1627 1627
1628 RenderPassList pass_list; 1628 RenderPassList pass_list;
1629 pass_list.push_back(child_pass.Pass()); 1629 pass_list.push_back(std::move(child_pass));
1630 pass_list.push_back(root_pass.Pass()); 1630 pass_list.push_back(std::move(root_pass));
1631 1631
1632 this->renderer_->SetEnlargePassTextureAmountForTesting(gfx::Vector2d(50, 75)); 1632 this->renderer_->SetEnlargePassTextureAmountForTesting(gfx::Vector2d(50, 75));
1633 1633
1634 EXPECT_TRUE(this->RunPixelTest( 1634 EXPECT_TRUE(this->RunPixelTest(
1635 &pass_list, 1635 &pass_list,
1636 base::FilePath(FILE_PATH_LITERAL("blue_yellow_anti_aliasing.png")), 1636 base::FilePath(FILE_PATH_LITERAL("blue_yellow_anti_aliasing.png")),
1637 FuzzyPixelOffByOneComparator(true))); 1637 FuzzyPixelOffByOneComparator(true)));
1638 } 1638 }
1639 1639
1640 // This tests the case where we have a RenderPass with a mask, but the quad 1640 // This tests the case where we have a RenderPass with a mask, but the quad
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1716 // White background behind the masked render pass. 1716 // White background behind the masked render pass.
1717 SolidColorDrawQuad* white = 1717 SolidColorDrawQuad* white =
1718 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1718 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1719 white->SetNew(root_pass_shared_state, 1719 white->SetNew(root_pass_shared_state,
1720 viewport_rect, 1720 viewport_rect,
1721 viewport_rect, 1721 viewport_rect,
1722 SK_ColorWHITE, 1722 SK_ColorWHITE,
1723 false); 1723 false);
1724 1724
1725 RenderPassList pass_list; 1725 RenderPassList pass_list;
1726 pass_list.push_back(child_pass.Pass()); 1726 pass_list.push_back(std::move(child_pass));
1727 pass_list.push_back(root_pass.Pass()); 1727 pass_list.push_back(std::move(root_pass));
1728 1728
1729 EXPECT_TRUE(this->RunPixelTest( 1729 EXPECT_TRUE(this->RunPixelTest(
1730 &pass_list, 1730 &pass_list,
1731 base::FilePath(FILE_PATH_LITERAL("mask_bottom_right.png")), 1731 base::FilePath(FILE_PATH_LITERAL("mask_bottom_right.png")),
1732 ExactPixelComparator(true))); 1732 ExactPixelComparator(true)));
1733 } 1733 }
1734 1734
1735 template <typename RendererType> 1735 template <typename RendererType>
1736 class RendererPixelTestWithBackgroundFilter 1736 class RendererPixelTestWithBackgroundFilter
1737 : public RendererPixelTest<RendererType> { 1737 : public RendererPixelTest<RendererType> {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1817 CreateTestSharedQuadState(identity_quad_to_target_transform, 1817 CreateTestSharedQuadState(identity_quad_to_target_transform,
1818 device_viewport_rect, root_pass.get()); 1818 device_viewport_rect, root_pass.get());
1819 SolidColorDrawQuad* background_quad = 1819 SolidColorDrawQuad* background_quad =
1820 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1820 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1821 background_quad->SetNew(shared_state, 1821 background_quad->SetNew(shared_state,
1822 device_viewport_rect, 1822 device_viewport_rect,
1823 device_viewport_rect, 1823 device_viewport_rect,
1824 SK_ColorWHITE, 1824 SK_ColorWHITE,
1825 false); 1825 false);
1826 1826
1827 pass_list_.push_back(filter_pass.Pass()); 1827 pass_list_.push_back(std::move(filter_pass));
1828 pass_list_.push_back(root_pass.Pass()); 1828 pass_list_.push_back(std::move(root_pass));
1829 } 1829 }
1830 1830
1831 RenderPassList pass_list_; 1831 RenderPassList pass_list_;
1832 FilterOperations background_filters_; 1832 FilterOperations background_filters_;
1833 gfx::Transform filter_pass_to_target_transform_; 1833 gfx::Transform filter_pass_to_target_transform_;
1834 gfx::Rect filter_pass_layer_rect_; 1834 gfx::Rect filter_pass_layer_rect_;
1835 }; 1835 };
1836 1836
1837 typedef ::testing::Types<GLRenderer, SoftwareRenderer> 1837 typedef ::testing::Types<GLRenderer, SoftwareRenderer>
1838 BackgroundFilterRendererTypes; 1838 BackgroundFilterRendererTypes;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1899 gfx::Rect rect(this->device_viewport_size_); 1899 gfx::Rect rect(this->device_viewport_size_);
1900 RenderPassId id(1, 1); 1900 RenderPassId id(1, 1);
1901 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 1901 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
1902 SharedQuadState* blue_shared_state = 1902 SharedQuadState* blue_shared_state =
1903 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 1903 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
1904 SolidColorDrawQuad* blue = 1904 SolidColorDrawQuad* blue =
1905 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1905 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1906 blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false); 1906 blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false);
1907 pass->has_transparent_background = false; 1907 pass->has_transparent_background = false;
1908 RenderPassList pass_list; 1908 RenderPassList pass_list;
1909 pass_list.push_back(pass.Pass()); 1909 pass_list.push_back(std::move(pass));
1910 1910
1911 EXPECT_TRUE(this->RunPixelTest( 1911 EXPECT_TRUE(this->RunPixelTest(
1912 &pass_list, 1912 &pass_list,
1913 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 1913 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
1914 ExactPixelComparator(true))); 1914 ExactPixelComparator(true)));
1915 } 1915 }
1916 1916
1917 TEST_F(ExternalStencilPixelTest, StencilTestDisabled) { 1917 TEST_F(ExternalStencilPixelTest, StencilTestDisabled) {
1918 PopulateStencilBuffer(); 1918 PopulateStencilBuffer();
1919 1919
1920 // Draw a green quad that covers the entire device viewport. The stencil 1920 // Draw a green quad that covers the entire device viewport. The stencil
1921 // buffer should be ignored. 1921 // buffer should be ignored.
1922 gfx::Rect rect(this->device_viewport_size_); 1922 gfx::Rect rect(this->device_viewport_size_);
1923 RenderPassId id(1, 1); 1923 RenderPassId id(1, 1);
1924 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 1924 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
1925 SharedQuadState* green_shared_state = 1925 SharedQuadState* green_shared_state =
1926 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 1926 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
1927 SolidColorDrawQuad* green = 1927 SolidColorDrawQuad* green =
1928 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1928 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1929 green->SetNew(green_shared_state, rect, rect, SK_ColorGREEN, false); 1929 green->SetNew(green_shared_state, rect, rect, SK_ColorGREEN, false);
1930 RenderPassList pass_list; 1930 RenderPassList pass_list;
1931 pass_list.push_back(pass.Pass()); 1931 pass_list.push_back(std::move(pass));
1932 1932
1933 EXPECT_TRUE(this->RunPixelTest( 1933 EXPECT_TRUE(this->RunPixelTest(
1934 &pass_list, 1934 &pass_list,
1935 base::FilePath(FILE_PATH_LITERAL("green.png")), 1935 base::FilePath(FILE_PATH_LITERAL("green.png")),
1936 ExactPixelComparator(true))); 1936 ExactPixelComparator(true)));
1937 } 1937 }
1938 1938
1939 TEST_F(ExternalStencilPixelTest, RenderSurfacesIgnoreStencil) { 1939 TEST_F(ExternalStencilPixelTest, RenderSurfacesIgnoreStencil) {
1940 // The stencil test should apply only to the final render pass. 1940 // The stencil test should apply only to the final render pass.
1941 ClearBackgroundToGreen(); 1941 ClearBackgroundToGreen();
(...skipping 23 matching lines...) Expand all
1965 this->device_viewport_size_.height()); 1965 this->device_viewport_size_.height());
1966 SolidColorDrawQuad* blue = 1966 SolidColorDrawQuad* blue =
1967 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1967 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1968 blue->SetNew(shared_state, blue_rect, blue_rect, SK_ColorBLUE, false); 1968 blue->SetNew(shared_state, blue_rect, blue_rect, SK_ColorBLUE, false);
1969 1969
1970 SharedQuadState* pass_shared_state = 1970 SharedQuadState* pass_shared_state =
1971 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); 1971 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get());
1972 CreateTestRenderPassDrawQuad( 1972 CreateTestRenderPassDrawQuad(
1973 pass_shared_state, pass_rect, child_pass_id, root_pass.get()); 1973 pass_shared_state, pass_rect, child_pass_id, root_pass.get());
1974 RenderPassList pass_list; 1974 RenderPassList pass_list;
1975 pass_list.push_back(child_pass.Pass()); 1975 pass_list.push_back(std::move(child_pass));
1976 pass_list.push_back(root_pass.Pass()); 1976 pass_list.push_back(std::move(root_pass));
1977 1977
1978 EXPECT_TRUE(this->RunPixelTest( 1978 EXPECT_TRUE(this->RunPixelTest(
1979 &pass_list, 1979 &pass_list,
1980 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 1980 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
1981 ExactPixelComparator(true))); 1981 ExactPixelComparator(true)));
1982 } 1982 }
1983 1983
1984 TEST_F(ExternalStencilPixelTest, DeviceClip) { 1984 TEST_F(ExternalStencilPixelTest, DeviceClip) {
1985 ClearBackgroundToGreen(); 1985 ClearBackgroundToGreen();
1986 gfx::Rect clip_rect(gfx::Point(150, 150), gfx::Size(50, 50)); 1986 gfx::Rect clip_rect(gfx::Point(150, 150), gfx::Size(50, 50));
1987 this->ForceDeviceClip(clip_rect); 1987 this->ForceDeviceClip(clip_rect);
1988 1988
1989 // Draw a blue quad that covers the entire device viewport. It should be 1989 // Draw a blue quad that covers the entire device viewport. It should be
1990 // clipped to the bottom right corner by the device clip. 1990 // clipped to the bottom right corner by the device clip.
1991 gfx::Rect rect(this->device_viewport_size_); 1991 gfx::Rect rect(this->device_viewport_size_);
1992 RenderPassId id(1, 1); 1992 RenderPassId id(1, 1);
1993 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 1993 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
1994 SharedQuadState* blue_shared_state = 1994 SharedQuadState* blue_shared_state =
1995 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 1995 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
1996 SolidColorDrawQuad* blue = 1996 SolidColorDrawQuad* blue =
1997 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 1997 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
1998 blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false); 1998 blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false);
1999 RenderPassList pass_list; 1999 RenderPassList pass_list;
2000 pass_list.push_back(pass.Pass()); 2000 pass_list.push_back(std::move(pass));
2001 2001
2002 EXPECT_TRUE(this->RunPixelTest( 2002 EXPECT_TRUE(this->RunPixelTest(
2003 &pass_list, 2003 &pass_list,
2004 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")), 2004 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")),
2005 ExactPixelComparator(true))); 2005 ExactPixelComparator(true)));
2006 } 2006 }
2007 2007
2008 // Software renderer does not support anti-aliased edges. 2008 // Software renderer does not support anti-aliased edges.
2009 TEST_F(GLRendererPixelTest, AntiAliasing) { 2009 TEST_F(GLRendererPixelTest, AntiAliasing) {
2010 gfx::Rect rect(this->device_viewport_size_); 2010 gfx::Rect rect(this->device_viewport_size_);
(...skipping 20 matching lines...) Expand all
2031 2031
2032 gfx::Transform blue_quad_to_target_transform; 2032 gfx::Transform blue_quad_to_target_transform;
2033 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( 2033 SharedQuadState* blue_shared_state = CreateTestSharedQuadState(
2034 blue_quad_to_target_transform, rect, pass.get()); 2034 blue_quad_to_target_transform, rect, pass.get());
2035 2035
2036 SolidColorDrawQuad* blue = 2036 SolidColorDrawQuad* blue =
2037 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 2037 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
2038 blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false); 2038 blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false);
2039 2039
2040 RenderPassList pass_list; 2040 RenderPassList pass_list;
2041 pass_list.push_back(pass.Pass()); 2041 pass_list.push_back(std::move(pass));
2042 2042
2043 EXPECT_TRUE(this->RunPixelTest( 2043 EXPECT_TRUE(this->RunPixelTest(
2044 &pass_list, 2044 &pass_list,
2045 base::FilePath(FILE_PATH_LITERAL("anti_aliasing.png")), 2045 base::FilePath(FILE_PATH_LITERAL("anti_aliasing.png")),
2046 FuzzyPixelOffByOneComparator(true))); 2046 FuzzyPixelOffByOneComparator(true)));
2047 } 2047 }
2048 2048
2049 // This test tests that anti-aliasing works for axis aligned quads. 2049 // This test tests that anti-aliasing works for axis aligned quads.
2050 // Anti-aliasing is only supported in the gl renderer. 2050 // Anti-aliasing is only supported in the gl renderer.
2051 TEST_F(GLRendererPixelTest, AxisAligned) { 2051 TEST_F(GLRendererPixelTest, AxisAligned) {
(...skipping 26 matching lines...) Expand all
2078 2078
2079 gfx::Transform blue_quad_to_target_transform; 2079 gfx::Transform blue_quad_to_target_transform;
2080 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( 2080 SharedQuadState* blue_shared_state = CreateTestSharedQuadState(
2081 blue_quad_to_target_transform, rect, pass.get()); 2081 blue_quad_to_target_transform, rect, pass.get());
2082 2082
2083 SolidColorDrawQuad* blue = 2083 SolidColorDrawQuad* blue =
2084 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 2084 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
2085 blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false); 2085 blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false);
2086 2086
2087 RenderPassList pass_list; 2087 RenderPassList pass_list;
2088 pass_list.push_back(pass.Pass()); 2088 pass_list.push_back(std::move(pass));
2089 2089
2090 EXPECT_TRUE(this->RunPixelTest( 2090 EXPECT_TRUE(this->RunPixelTest(
2091 &pass_list, 2091 &pass_list,
2092 base::FilePath(FILE_PATH_LITERAL("axis_aligned.png")), 2092 base::FilePath(FILE_PATH_LITERAL("axis_aligned.png")),
2093 ExactPixelComparator(true))); 2093 ExactPixelComparator(true)));
2094 } 2094 }
2095 2095
2096 // This test tests that forcing anti-aliasing off works as expected. 2096 // This test tests that forcing anti-aliasing off works as expected.
2097 // Anti-aliasing is only supported in the gl renderer. 2097 // Anti-aliasing is only supported in the gl renderer.
2098 TEST_F(GLRendererPixelTest, ForceAntiAliasingOff) { 2098 TEST_F(GLRendererPixelTest, ForceAntiAliasingOff) {
(...skipping 18 matching lines...) Expand all
2117 2117
2118 gfx::Transform green_quad_to_target_transform; 2118 gfx::Transform green_quad_to_target_transform;
2119 SharedQuadState* green_shared_state = CreateTestSharedQuadState( 2119 SharedQuadState* green_shared_state = CreateTestSharedQuadState(
2120 green_quad_to_target_transform, rect, pass.get()); 2120 green_quad_to_target_transform, rect, pass.get());
2121 2121
2122 SolidColorDrawQuad* green = 2122 SolidColorDrawQuad* green =
2123 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 2123 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
2124 green->SetNew(green_shared_state, rect, rect, SK_ColorGREEN, false); 2124 green->SetNew(green_shared_state, rect, rect, SK_ColorGREEN, false);
2125 2125
2126 RenderPassList pass_list; 2126 RenderPassList pass_list;
2127 pass_list.push_back(pass.Pass()); 2127 pass_list.push_back(std::move(pass));
2128 2128
2129 EXPECT_TRUE(this->RunPixelTest( 2129 EXPECT_TRUE(this->RunPixelTest(
2130 &pass_list, 2130 &pass_list,
2131 base::FilePath(FILE_PATH_LITERAL("force_anti_aliasing_off.png")), 2131 base::FilePath(FILE_PATH_LITERAL("force_anti_aliasing_off.png")),
2132 ExactPixelComparator(false))); 2132 ExactPixelComparator(false)));
2133 } 2133 }
2134 2134
2135 TEST_F(GLRendererPixelTest, AntiAliasingPerspective) { 2135 TEST_F(GLRendererPixelTest, AntiAliasingPerspective) {
2136 gfx::Rect rect(this->device_viewport_size_); 2136 gfx::Rect rect(this->device_viewport_size_);
2137 2137
(...skipping 17 matching lines...) Expand all
2155 green->SetNew( 2155 green->SetNew(
2156 green_shared_state, green_rect, green_rect, SK_ColorGREEN, false); 2156 green_shared_state, green_rect, green_rect, SK_ColorGREEN, false);
2157 2157
2158 SharedQuadState* blue_shared_state = 2158 SharedQuadState* blue_shared_state =
2159 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); 2159 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
2160 SolidColorDrawQuad* blue = 2160 SolidColorDrawQuad* blue =
2161 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 2161 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
2162 blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false); 2162 blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false);
2163 2163
2164 RenderPassList pass_list; 2164 RenderPassList pass_list;
2165 pass_list.push_back(pass.Pass()); 2165 pass_list.push_back(std::move(pass));
2166 2166
2167 EXPECT_TRUE(this->RunPixelTest( 2167 EXPECT_TRUE(this->RunPixelTest(
2168 &pass_list, 2168 &pass_list,
2169 base::FilePath(FILE_PATH_LITERAL("anti_aliasing_perspective.png")), 2169 base::FilePath(FILE_PATH_LITERAL("anti_aliasing_perspective.png")),
2170 FuzzyPixelOffByOneComparator(true))); 2170 FuzzyPixelOffByOneComparator(true)));
2171 } 2171 }
2172 2172
2173 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadIdentityScale) { 2173 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadIdentityScale) {
2174 gfx::Rect viewport(this->device_viewport_size_); 2174 gfx::Rect viewport(this->device_viewport_size_);
2175 // TODO(enne): the renderer should figure this out on its own. 2175 // TODO(enne): the renderer should figure this out on its own.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2209 SharedQuadState* blue_shared_state = 2209 SharedQuadState* blue_shared_state =
2210 CreateTestSharedQuadStateClipped(blue_quad_to_target_transform, blue_rect, 2210 CreateTestSharedQuadStateClipped(blue_quad_to_target_transform, blue_rect,
2211 blue_target_clip_rect, pass.get()); 2211 blue_target_clip_rect, pass.get());
2212 2212
2213 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 2213 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
2214 2214
2215 blue_quad->SetNew(blue_shared_state, 2215 blue_quad->SetNew(blue_shared_state,
2216 viewport, // Intentionally bigger than clip. 2216 viewport, // Intentionally bigger than clip.
2217 gfx::Rect(), viewport, gfx::RectF(viewport), 2217 gfx::Rect(), viewport, gfx::RectF(viewport),
2218 viewport.size(), nearest_neighbor, texture_format, viewport, 2218 viewport.size(), nearest_neighbor, texture_format, viewport,
2219 1.f, blue_raster_source.Pass()); 2219 1.f, std::move(blue_raster_source));
2220 2220
2221 // One viewport-filling green quad. 2221 // One viewport-filling green quad.
2222 scoped_ptr<FakeDisplayListRecordingSource> green_recording = 2222 scoped_ptr<FakeDisplayListRecordingSource> green_recording =
2223 FakeDisplayListRecordingSource::CreateFilledRecordingSource( 2223 FakeDisplayListRecordingSource::CreateFilledRecordingSource(
2224 viewport.size()); 2224 viewport.size());
2225 SkPaint green_paint; 2225 SkPaint green_paint;
2226 green_paint.setColor(SK_ColorGREEN); 2226 green_paint.setColor(SK_ColorGREEN);
2227 green_recording->add_draw_rect_with_paint(viewport, green_paint); 2227 green_recording->add_draw_rect_with_paint(viewport, green_paint);
2228 green_recording->Rerecord(); 2228 green_recording->Rerecord();
2229 scoped_refptr<FakeDisplayListRasterSource> green_raster_source = 2229 scoped_refptr<FakeDisplayListRasterSource> green_raster_source =
2230 FakeDisplayListRasterSource::CreateFromRecordingSource( 2230 FakeDisplayListRasterSource::CreateFromRecordingSource(
2231 green_recording.get(), false); 2231 green_recording.get(), false);
2232 2232
2233 gfx::Transform green_quad_to_target_transform; 2233 gfx::Transform green_quad_to_target_transform;
2234 SharedQuadState* green_shared_state = CreateTestSharedQuadState( 2234 SharedQuadState* green_shared_state = CreateTestSharedQuadState(
2235 green_quad_to_target_transform, viewport, pass.get()); 2235 green_quad_to_target_transform, viewport, pass.get());
2236 2236
2237 PictureDrawQuad* green_quad = 2237 PictureDrawQuad* green_quad =
2238 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 2238 pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
2239 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, 2239 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport,
2240 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), 2240 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(),
2241 nearest_neighbor, texture_format, viewport, 1.f, 2241 nearest_neighbor, texture_format, viewport, 1.f,
2242 green_raster_source.Pass()); 2242 std::move(green_raster_source));
2243 2243
2244 RenderPassList pass_list; 2244 RenderPassList pass_list;
2245 pass_list.push_back(pass.Pass()); 2245 pass_list.push_back(std::move(pass));
2246 2246
2247 EXPECT_TRUE(this->RunPixelTest( 2247 EXPECT_TRUE(this->RunPixelTest(
2248 &pass_list, 2248 &pass_list,
2249 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")), 2249 base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")),
2250 ExactPixelComparator(true))); 2250 ExactPixelComparator(true)));
2251 } 2251 }
2252 2252
2253 // Not WithSkiaGPUBackend since that path currently requires tiles for opacity. 2253 // Not WithSkiaGPUBackend since that path currently requires tiles for opacity.
2254 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadOpacity) { 2254 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadOpacity) {
2255 gfx::Rect viewport(this->device_viewport_size_); 2255 gfx::Rect viewport(this->device_viewport_size_);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
2297 white_recording.get(), false); 2297 white_recording.get(), false);
2298 2298
2299 gfx::Transform white_quad_to_target_transform; 2299 gfx::Transform white_quad_to_target_transform;
2300 SharedQuadState* white_shared_state = CreateTestSharedQuadState( 2300 SharedQuadState* white_shared_state = CreateTestSharedQuadState(
2301 white_quad_to_target_transform, viewport, pass.get()); 2301 white_quad_to_target_transform, viewport, pass.get());
2302 2302
2303 PictureDrawQuad* white_quad = 2303 PictureDrawQuad* white_quad =
2304 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 2304 pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
2305 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport, 2305 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport,
2306 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, 2306 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor,
2307 texture_format, viewport, 1.f, white_raster_source.Pass()); 2307 texture_format, viewport, 1.f,
2308 std::move(white_raster_source));
2308 2309
2309 RenderPassList pass_list; 2310 RenderPassList pass_list;
2310 pass_list.push_back(pass.Pass()); 2311 pass_list.push_back(std::move(pass));
2311 2312
2312 EXPECT_TRUE(this->RunPixelTest( 2313 EXPECT_TRUE(this->RunPixelTest(
2313 &pass_list, 2314 &pass_list,
2314 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), 2315 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")),
2315 FuzzyPixelOffByOneComparator(true))); 2316 FuzzyPixelOffByOneComparator(true)));
2316 } 2317 }
2317 2318
2318 template<typename TypeParam> bool IsSoftwareRenderer() { 2319 template<typename TypeParam> bool IsSoftwareRenderer() {
2319 return false; 2320 return false;
2320 } 2321 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
2367 FakeDisplayListRasterSource::CreateFromRecordingSource(recording.get(), 2368 FakeDisplayListRasterSource::CreateFromRecordingSource(recording.get(),
2368 false); 2369 false);
2369 2370
2370 gfx::Transform quad_to_target_transform; 2371 gfx::Transform quad_to_target_transform;
2371 SharedQuadState* shared_state = 2372 SharedQuadState* shared_state =
2372 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); 2373 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get());
2373 2374
2374 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 2375 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
2375 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, 2376 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport,
2376 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, 2377 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor,
2377 texture_format, viewport, 1.f, raster_source.Pass()); 2378 texture_format, viewport, 1.f, std::move(raster_source));
2378 2379
2379 RenderPassList pass_list; 2380 RenderPassList pass_list;
2380 pass_list.push_back(pass.Pass()); 2381 pass_list.push_back(std::move(pass));
2381 2382
2382 this->disable_picture_quad_image_filtering_ = true; 2383 this->disable_picture_quad_image_filtering_ = true;
2383 2384
2384 EXPECT_TRUE(this->RunPixelTest( 2385 EXPECT_TRUE(this->RunPixelTest(
2385 &pass_list, 2386 &pass_list,
2386 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 2387 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
2387 ExactPixelComparator(true))); 2388 ExactPixelComparator(true)));
2388 } 2389 }
2389 2390
2390 // This disables filtering by setting |nearest_neighbor| on the PictureDrawQuad. 2391 // This disables filtering by setting |nearest_neighbor| on the PictureDrawQuad.
(...skipping 28 matching lines...) Expand all
2419 FakeDisplayListRasterSource::CreateFromRecordingSource(recording.get(), 2420 FakeDisplayListRasterSource::CreateFromRecordingSource(recording.get(),
2420 false); 2421 false);
2421 2422
2422 gfx::Transform quad_to_target_transform; 2423 gfx::Transform quad_to_target_transform;
2423 SharedQuadState* shared_state = 2424 SharedQuadState* shared_state =
2424 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); 2425 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get());
2425 2426
2426 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 2427 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
2427 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, 2428 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport,
2428 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, 2429 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor,
2429 texture_format, viewport, 1.f, raster_source.Pass()); 2430 texture_format, viewport, 1.f, std::move(raster_source));
2430 2431
2431 RenderPassList pass_list; 2432 RenderPassList pass_list;
2432 pass_list.push_back(pass.Pass()); 2433 pass_list.push_back(std::move(pass));
2433 2434
2434 EXPECT_TRUE(this->RunPixelTest( 2435 EXPECT_TRUE(this->RunPixelTest(
2435 &pass_list, 2436 &pass_list,
2436 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 2437 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
2437 ExactPixelComparator(true))); 2438 ExactPixelComparator(true)));
2438 } 2439 }
2439 2440
2440 // This disables filtering by setting |nearest_neighbor| on the TileDrawQuad. 2441 // This disables filtering by setting |nearest_neighbor| on the TileDrawQuad.
2441 TYPED_TEST(RendererPixelTest, TileDrawQuadNearestNeighbor) { 2442 TYPED_TEST(RendererPixelTest, TileDrawQuadNearestNeighbor) {
2442 gfx::Rect viewport(this->device_viewport_size_); 2443 gfx::Rect viewport(this->device_viewport_size_);
(...skipping 29 matching lines...) Expand all
2472 gfx::Transform quad_to_target_transform; 2473 gfx::Transform quad_to_target_transform;
2473 SharedQuadState* shared_state = 2474 SharedQuadState* shared_state =
2474 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); 2475 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get());
2475 2476
2476 TileDrawQuad* quad = pass->CreateAndAppendDrawQuad<TileDrawQuad>(); 2477 TileDrawQuad* quad = pass->CreateAndAppendDrawQuad<TileDrawQuad>();
2477 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, 2478 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource,
2478 gfx::RectF(gfx::Rect(tile_size)), tile_size, swizzle_contents, 2479 gfx::RectF(gfx::Rect(tile_size)), tile_size, swizzle_contents,
2479 nearest_neighbor); 2480 nearest_neighbor);
2480 2481
2481 RenderPassList pass_list; 2482 RenderPassList pass_list;
2482 pass_list.push_back(pass.Pass()); 2483 pass_list.push_back(std::move(pass));
2483 2484
2484 EXPECT_TRUE(this->RunPixelTest( 2485 EXPECT_TRUE(this->RunPixelTest(
2485 &pass_list, 2486 &pass_list,
2486 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 2487 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
2487 ExactPixelComparator(true))); 2488 ExactPixelComparator(true)));
2488 } 2489 }
2489 2490
2490 // This disables filtering by setting |nearest_neighbor| to true on the 2491 // This disables filtering by setting |nearest_neighbor| to true on the
2491 // TextureDrawQuad. 2492 // TextureDrawQuad.
2492 TYPED_TEST(SoftwareRendererPixelTest, TextureDrawQuadNearestNeighbor) { 2493 TYPED_TEST(SoftwareRendererPixelTest, TextureDrawQuadNearestNeighbor) {
(...skipping 30 matching lines...) Expand all
2523 SharedQuadState* shared_state = 2524 SharedQuadState* shared_state =
2524 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); 2525 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get());
2525 2526
2526 float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f}; 2527 float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f};
2527 TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 2528 TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
2528 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, false, 2529 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, false,
2529 gfx::PointF(0, 0), gfx::PointF(1, 1), SK_ColorBLACK, 2530 gfx::PointF(0, 0), gfx::PointF(1, 1), SK_ColorBLACK,
2530 vertex_opacity, false, nearest_neighbor); 2531 vertex_opacity, false, nearest_neighbor);
2531 2532
2532 RenderPassList pass_list; 2533 RenderPassList pass_list;
2533 pass_list.push_back(pass.Pass()); 2534 pass_list.push_back(std::move(pass));
2534 2535
2535 EXPECT_TRUE(this->RunPixelTest( 2536 EXPECT_TRUE(this->RunPixelTest(
2536 &pass_list, 2537 &pass_list,
2537 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 2538 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
2538 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f))); 2539 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f)));
2539 } 2540 }
2540 2541
2541 // This ensures filtering is enabled by setting |nearest_neighbor| to false on 2542 // This ensures filtering is enabled by setting |nearest_neighbor| to false on
2542 // the TextureDrawQuad. 2543 // the TextureDrawQuad.
2543 TYPED_TEST(SoftwareRendererPixelTest, TextureDrawQuadLinear) { 2544 TYPED_TEST(SoftwareRendererPixelTest, TextureDrawQuadLinear) {
(...skipping 30 matching lines...) Expand all
2574 SharedQuadState* shared_state = 2575 SharedQuadState* shared_state =
2575 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); 2576 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get());
2576 2577
2577 float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f}; 2578 float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f};
2578 TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 2579 TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
2579 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, false, 2580 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, false,
2580 gfx::PointF(0, 0), gfx::PointF(1, 1), SK_ColorBLACK, 2581 gfx::PointF(0, 0), gfx::PointF(1, 1), SK_ColorBLACK,
2581 vertex_opacity, false, nearest_neighbor); 2582 vertex_opacity, false, nearest_neighbor);
2582 2583
2583 RenderPassList pass_list; 2584 RenderPassList pass_list;
2584 pass_list.push_back(pass.Pass()); 2585 pass_list.push_back(std::move(pass));
2585 2586
2586 // Allow for a small amount of error as the blending alogrithm used by Skia is 2587 // Allow for a small amount of error as the blending alogrithm used by Skia is
2587 // affected by the offset in the expanded rect. 2588 // affected by the offset in the expanded rect.
2588 EXPECT_TRUE(this->RunPixelTest( 2589 EXPECT_TRUE(this->RunPixelTest(
2589 &pass_list, 2590 &pass_list,
2590 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers_linear.png")), 2591 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers_linear.png")),
2591 FuzzyPixelComparator(false, 100.f, 0.f, 16.f, 16.f, 0.f))); 2592 FuzzyPixelComparator(false, 100.f, 0.f, 16.f, 16.f, 0.f)));
2592 } 2593 }
2593 2594
2594 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNonIdentityScale) { 2595 TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNonIdentityScale) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
2636 top_right_green_shared_quad_state, green_rect1, gfx::Rect(), green_rect1, 2637 top_right_green_shared_quad_state, green_rect1, gfx::Rect(), green_rect1,
2637 gfx::RectF(gfx::SizeF(green_rect1.size())), green_rect1.size(), 2638 gfx::RectF(gfx::SizeF(green_rect1.size())), green_rect1.size(),
2638 nearest_neighbor, texture_format, green_rect1, 1.f, green_raster_source); 2639 nearest_neighbor, texture_format, green_rect1, 1.f, green_raster_source);
2639 2640
2640 PictureDrawQuad* green_quad2 = 2641 PictureDrawQuad* green_quad2 =
2641 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 2642 pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
2642 green_quad2->SetNew(top_right_green_shared_quad_state, green_rect2, 2643 green_quad2->SetNew(top_right_green_shared_quad_state, green_rect2,
2643 gfx::Rect(), green_rect2, 2644 gfx::Rect(), green_rect2,
2644 gfx::RectF(gfx::SizeF(green_rect2.size())), 2645 gfx::RectF(gfx::SizeF(green_rect2.size())),
2645 green_rect2.size(), nearest_neighbor, texture_format, 2646 green_rect2.size(), nearest_neighbor, texture_format,
2646 green_rect2, 1.f, green_raster_source.Pass()); 2647 green_rect2, 1.f, std::move(green_raster_source));
2647 2648
2648 // Add a green clipped checkerboard in the bottom right to help test 2649 // Add a green clipped checkerboard in the bottom right to help test
2649 // interleaving picture quad content and solid color content. 2650 // interleaving picture quad content and solid color content.
2650 gfx::Rect bottom_right_rect( 2651 gfx::Rect bottom_right_rect(
2651 gfx::Point(viewport.width() / 2, viewport.height() / 2), 2652 gfx::Point(viewport.width() / 2, viewport.height() / 2),
2652 gfx::Size(viewport.width() / 2, viewport.height() / 2)); 2653 gfx::Size(viewport.width() / 2, viewport.height() / 2));
2653 SharedQuadState* bottom_right_green_shared_state = 2654 SharedQuadState* bottom_right_green_shared_state =
2654 CreateTestSharedQuadStateClipped(green_quad_to_target_transform, viewport, 2655 CreateTestSharedQuadStateClipped(green_quad_to_target_transform, viewport,
2655 bottom_right_rect, pass.get()); 2656 bottom_right_rect, pass.get());
2656 SolidColorDrawQuad* bottom_right_color_quad = 2657 SolidColorDrawQuad* bottom_right_color_quad =
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
2707 gfx::Transform quad_to_target_transform; 2708 gfx::Transform quad_to_target_transform;
2708 quad_to_target_transform.Scale(10.0, 10.0); 2709 quad_to_target_transform.Scale(10.0, 10.0);
2709 gfx::Rect quad_content_rect(gfx::Size(20, 20)); 2710 gfx::Rect quad_content_rect(gfx::Size(20, 20));
2710 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( 2711 SharedQuadState* blue_shared_state = CreateTestSharedQuadState(
2711 quad_to_target_transform, quad_content_rect, pass.get()); 2712 quad_to_target_transform, quad_content_rect, pass.get());
2712 2713
2713 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 2714 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
2714 blue_quad->SetNew(blue_shared_state, quad_content_rect, gfx::Rect(), 2715 blue_quad->SetNew(blue_shared_state, quad_content_rect, gfx::Rect(),
2715 quad_content_rect, gfx::RectF(quad_content_rect), 2716 quad_content_rect, gfx::RectF(quad_content_rect),
2716 content_union_rect.size(), nearest_neighbor, texture_format, 2717 content_union_rect.size(), nearest_neighbor, texture_format,
2717 content_union_rect, contents_scale, raster_source.Pass()); 2718 content_union_rect, contents_scale,
2719 std::move(raster_source));
2718 2720
2719 // Fill left half of viewport with green. 2721 // Fill left half of viewport with green.
2720 gfx::Transform half_green_quad_to_target_transform; 2722 gfx::Transform half_green_quad_to_target_transform;
2721 gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height())); 2723 gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height()));
2722 SharedQuadState* half_green_shared_state = CreateTestSharedQuadState( 2724 SharedQuadState* half_green_shared_state = CreateTestSharedQuadState(
2723 half_green_quad_to_target_transform, half_green_rect, pass.get()); 2725 half_green_quad_to_target_transform, half_green_rect, pass.get());
2724 SolidColorDrawQuad* half_color_quad = 2726 SolidColorDrawQuad* half_color_quad =
2725 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 2727 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
2726 half_color_quad->SetNew(half_green_shared_state, 2728 half_color_quad->SetNew(half_green_shared_state,
2727 half_green_rect, 2729 half_green_rect,
2728 half_green_rect, 2730 half_green_rect,
2729 SK_ColorGREEN, 2731 SK_ColorGREEN,
2730 false); 2732 false);
2731 2733
2732 RenderPassList pass_list; 2734 RenderPassList pass_list;
2733 pass_list.push_back(pass.Pass()); 2735 pass_list.push_back(std::move(pass));
2734 2736
2735 EXPECT_TRUE(this->RunPixelTest( 2737 EXPECT_TRUE(this->RunPixelTest(
2736 &pass_list, 2738 &pass_list,
2737 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), 2739 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")),
2738 ExactPixelComparator(true))); 2740 ExactPixelComparator(true)));
2739 } 2741 }
2740 2742
2741 typedef RendererPixelTest<GLRendererWithFlippedSurface> 2743 typedef RendererPixelTest<GLRendererWithFlippedSurface>
2742 GLRendererPixelTestWithFlippedOutputSurface; 2744 GLRendererPixelTestWithFlippedOutputSurface;
2743 2745
(...skipping 29 matching lines...) Expand all
2773 SolidColorDrawQuad* yellow = 2775 SolidColorDrawQuad* yellow =
2774 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 2776 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
2775 yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false); 2777 yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false);
2776 2778
2777 SharedQuadState* pass_shared_state = 2779 SharedQuadState* pass_shared_state =
2778 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); 2780 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get());
2779 CreateTestRenderPassDrawQuad( 2781 CreateTestRenderPassDrawQuad(
2780 pass_shared_state, pass_rect, child_pass_id, root_pass.get()); 2782 pass_shared_state, pass_rect, child_pass_id, root_pass.get());
2781 2783
2782 RenderPassList pass_list; 2784 RenderPassList pass_list;
2783 pass_list.push_back(child_pass.Pass()); 2785 pass_list.push_back(std::move(child_pass));
2784 pass_list.push_back(root_pass.Pass()); 2786 pass_list.push_back(std::move(root_pass));
2785 2787
2786 EXPECT_TRUE(this->RunPixelTest( 2788 EXPECT_TRUE(this->RunPixelTest(
2787 &pass_list, 2789 &pass_list,
2788 base::FilePath(FILE_PATH_LITERAL("blue_yellow_flipped.png")), 2790 base::FilePath(FILE_PATH_LITERAL("blue_yellow_flipped.png")),
2789 ExactPixelComparator(true))); 2791 ExactPixelComparator(true)));
2790 } 2792 }
2791 2793
2792 TEST_F(GLRendererPixelTestWithFlippedOutputSurface, CheckChildPassUnflipped) { 2794 TEST_F(GLRendererPixelTestWithFlippedOutputSurface, CheckChildPassUnflipped) {
2793 // This draws a blue rect above a yellow rect with an inverted output surface. 2795 // This draws a blue rect above a yellow rect with an inverted output surface.
2794 gfx::Rect viewport_rect(this->device_viewport_size_); 2796 gfx::Rect viewport_rect(this->device_viewport_size_);
(...skipping 26 matching lines...) Expand all
2821 SolidColorDrawQuad* yellow = 2823 SolidColorDrawQuad* yellow =
2822 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 2824 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
2823 yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false); 2825 yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false);
2824 2826
2825 SharedQuadState* pass_shared_state = 2827 SharedQuadState* pass_shared_state =
2826 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); 2828 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get());
2827 CreateTestRenderPassDrawQuad( 2829 CreateTestRenderPassDrawQuad(
2828 pass_shared_state, pass_rect, child_pass_id, root_pass.get()); 2830 pass_shared_state, pass_rect, child_pass_id, root_pass.get());
2829 2831
2830 RenderPassList pass_list; 2832 RenderPassList pass_list;
2831 pass_list.push_back(child_pass.Pass()); 2833 pass_list.push_back(std::move(child_pass));
2832 pass_list.push_back(root_pass.Pass()); 2834 pass_list.push_back(std::move(root_pass));
2833 2835
2834 // Check that the child pass remains unflipped. 2836 // Check that the child pass remains unflipped.
2835 EXPECT_TRUE(this->RunPixelTestWithReadbackTarget( 2837 EXPECT_TRUE(this->RunPixelTestWithReadbackTarget(
2836 &pass_list, pass_list.front().get(), 2838 &pass_list, pass_list.front().get(),
2837 base::FilePath(FILE_PATH_LITERAL("blue_yellow.png")), 2839 base::FilePath(FILE_PATH_LITERAL("blue_yellow.png")),
2838 ExactPixelComparator(true))); 2840 ExactPixelComparator(true)));
2839 } 2841 }
2840 2842
2841 TEST_F(GLRendererPixelTest, CheckReadbackSubset) { 2843 TEST_F(GLRendererPixelTest, CheckReadbackSubset) {
2842 gfx::Rect viewport_rect(this->device_viewport_size_); 2844 gfx::Rect viewport_rect(this->device_viewport_size_);
(...skipping 27 matching lines...) Expand all
2870 SolidColorDrawQuad* green = 2872 SolidColorDrawQuad* green =
2871 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 2873 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
2872 green->SetNew(shared_state, green_rect, green_rect, SK_ColorGREEN, false); 2874 green->SetNew(shared_state, green_rect, green_rect, SK_ColorGREEN, false);
2873 2875
2874 SharedQuadState* pass_shared_state = 2876 SharedQuadState* pass_shared_state =
2875 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get()); 2877 CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get());
2876 CreateTestRenderPassDrawQuad( 2878 CreateTestRenderPassDrawQuad(
2877 pass_shared_state, pass_rect, child_pass_id, root_pass.get()); 2879 pass_shared_state, pass_rect, child_pass_id, root_pass.get());
2878 2880
2879 RenderPassList pass_list; 2881 RenderPassList pass_list;
2880 pass_list.push_back(child_pass.Pass()); 2882 pass_list.push_back(std::move(child_pass));
2881 pass_list.push_back(root_pass.Pass()); 2883 pass_list.push_back(std::move(root_pass));
2882 2884
2883 // Check that the child pass remains unflipped. 2885 // Check that the child pass remains unflipped.
2884 gfx::Rect capture_rect(this->device_viewport_size_.width() / 2, 2886 gfx::Rect capture_rect(this->device_viewport_size_.width() / 2,
2885 this->device_viewport_size_.height() / 2, 2887 this->device_viewport_size_.height() / 2,
2886 this->device_viewport_size_.width() / 2, 2888 this->device_viewport_size_.width() / 2,
2887 this->device_viewport_size_.height() / 2); 2889 this->device_viewport_size_.height() / 2);
2888 EXPECT_TRUE(this->RunPixelTestWithReadbackTargetAndArea( 2890 EXPECT_TRUE(this->RunPixelTestWithReadbackTargetAndArea(
2889 &pass_list, pass_list.front().get(), 2891 &pass_list, pass_list.front().get(),
2890 base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")), 2892 base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")),
2891 ExactPixelComparator(true), &capture_rect)); 2893 ExactPixelComparator(true), &capture_rect));
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
2958 TextureDrawQuad* texture_quad = 2960 TextureDrawQuad* texture_quad =
2959 pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 2961 pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
2960 texture_quad->SetNew(shared_state, layer_rect, layer_rect, layer_rect, 2962 texture_quad->SetNew(shared_state, layer_rect, layer_rect, layer_rect,
2961 resource, true, uv_rect.origin(), 2963 resource, true, uv_rect.origin(),
2962 uv_rect.bottom_right(), SK_ColorWHITE, 2964 uv_rect.bottom_right(), SK_ColorWHITE,
2963 vertex_opacity, false, false); 2965 vertex_opacity, false, false);
2964 } 2966 }
2965 } 2967 }
2966 2968
2967 RenderPassList pass_list; 2969 RenderPassList pass_list;
2968 pass_list.push_back(pass.Pass()); 2970 pass_list.push_back(std::move(pass));
2969 2971
2970 EXPECT_TRUE(this->RunPixelTest( 2972 EXPECT_TRUE(this->RunPixelTest(
2971 &pass_list, base::FilePath(FILE_PATH_LITERAL("spiral.png")), 2973 &pass_list, base::FilePath(FILE_PATH_LITERAL("spiral.png")),
2972 FuzzyPixelOffByOneComparator(true))); 2974 FuzzyPixelOffByOneComparator(true)));
2973 } 2975 }
2974 2976
2975 #endif // !defined(OS_ANDROID) 2977 #endif // !defined(OS_ANDROID)
2976 2978
2977 } // namespace 2979 } // namespace
2978 } // namespace cc 2980 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/overlay_unittest.cc ('k') | cc/output/renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698