| 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 |