OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
6 #include "cc/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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |