| 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.h" | 5 #include "base/message_loop.h" | 
| 6 #include "cc/layers/append_quads_data.h" | 6 #include "cc/layers/append_quads_data.h" | 
| 7 #include "cc/output/gl_renderer.h" | 7 #include "cc/output/gl_renderer.h" | 
| 8 #include "cc/quads/draw_quad.h" | 8 #include "cc/quads/draw_quad.h" | 
| 9 #include "cc/quads/picture_draw_quad.h" | 9 #include "cc/quads/picture_draw_quad.h" | 
| 10 #include "cc/resources/platform_color.h" | 10 #include "cc/resources/platform_color.h" | 
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 80 scoped_ptr<DrawQuad> CreateTestRenderPassDrawQuad( | 80 scoped_ptr<DrawQuad> CreateTestRenderPassDrawQuad( | 
| 81     SharedQuadState* shared_state, gfx::Rect rect, RenderPass::Id pass_id) { | 81     SharedQuadState* shared_state, gfx::Rect rect, RenderPass::Id pass_id) { | 
| 82   scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create(); | 82   scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create(); | 
| 83   quad->SetNew(shared_state, | 83   quad->SetNew(shared_state, | 
| 84                rect, | 84                rect, | 
| 85                pass_id, | 85                pass_id, | 
| 86                false,         // is_replica | 86                false,         // is_replica | 
| 87                0,             // mask_resource_id | 87                0,             // mask_resource_id | 
| 88                rect,          // contents_changed_since_last_frame | 88                rect,          // contents_changed_since_last_frame | 
| 89                gfx::RectF(),  // mask_uv_rect | 89                gfx::RectF(),  // mask_uv_rect | 
| 90                WebKit::WebFilterOperations(),   // foreground filters | 90                FilterOperations(),   // foreground filters | 
| 91                skia::RefPtr<SkImageFilter>(),   // foreground filter | 91                skia::RefPtr<SkImageFilter>(),   // foreground filter | 
| 92                WebKit::WebFilterOperations());  // background filters | 92                FilterOperations());  // background filters | 
| 93 | 93 | 
| 94   return quad.PassAs<DrawQuad>(); | 94   return quad.PassAs<DrawQuad>(); | 
| 95 } | 95 } | 
| 96 | 96 | 
| 97 typedef ::testing::Types<GLRenderer, | 97 typedef ::testing::Types<GLRenderer, | 
| 98                          SoftwareRenderer, | 98                          SoftwareRenderer, | 
| 99                          GLRendererWithExpandedViewport, | 99                          GLRendererWithExpandedViewport, | 
| 100                          SoftwareRendererWithExpandedViewport> RendererTypes; | 100                          SoftwareRendererWithExpandedViewport> RendererTypes; | 
| 101 TYPED_TEST_CASE(RendererPixelTest, RendererTypes); | 101 TYPED_TEST_CASE(RendererPixelTest, RendererTypes); | 
| 102 | 102 | 
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 409 | 409 | 
| 410   scoped_ptr<RenderPassDrawQuad> render_pass_quad = | 410   scoped_ptr<RenderPassDrawQuad> render_pass_quad = | 
| 411       RenderPassDrawQuad::Create(); | 411       RenderPassDrawQuad::Create(); | 
| 412   render_pass_quad->SetNew(pass_shared_state.get(), | 412   render_pass_quad->SetNew(pass_shared_state.get(), | 
| 413                            pass_rect, | 413                            pass_rect, | 
| 414                            child_pass_id, | 414                            child_pass_id, | 
| 415                            false, | 415                            false, | 
| 416                            0, | 416                            0, | 
| 417                            pass_rect, | 417                            pass_rect, | 
| 418                            gfx::RectF(), | 418                            gfx::RectF(), | 
| 419                            WebKit::WebFilterOperations(), | 419                            FilterOperations(), | 
| 420                            filter, | 420                            filter, | 
| 421                            WebKit::WebFilterOperations()); | 421                            FilterOperations()); | 
| 422 | 422 | 
| 423   root_pass->quad_list.push_back(render_pass_quad.PassAs<DrawQuad>()); | 423   root_pass->quad_list.push_back(render_pass_quad.PassAs<DrawQuad>()); | 
| 424 | 424 | 
| 425   RenderPassList pass_list; | 425   RenderPassList pass_list; | 
| 426   pass_list.push_back(child_pass.Pass()); | 426   pass_list.push_back(child_pass.Pass()); | 
| 427   pass_list.push_back(root_pass.Pass()); | 427   pass_list.push_back(root_pass.Pass()); | 
| 428 | 428 | 
| 429   // This test has alpha=254 for the software renderer vs. alpha=255 for the gl | 429   // This test has alpha=254 for the software renderer vs. alpha=255 for the gl | 
| 430   // renderer so use a fuzzy comparator. | 430   // renderer so use a fuzzy comparator. | 
| 431   EXPECT_TRUE(this->RunPixelTest( | 431   EXPECT_TRUE(this->RunPixelTest( | 
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 511 | 511 | 
| 512   scoped_ptr<RenderPassDrawQuad> render_pass_quad = | 512   scoped_ptr<RenderPassDrawQuad> render_pass_quad = | 
| 513       RenderPassDrawQuad::Create(); | 513       RenderPassDrawQuad::Create(); | 
| 514   render_pass_quad->SetNew(pass_shared_state.get(), | 514   render_pass_quad->SetNew(pass_shared_state.get(), | 
| 515                            pass_rect, | 515                            pass_rect, | 
| 516                            child_pass_id, | 516                            child_pass_id, | 
| 517                            false, | 517                            false, | 
| 518                            0, | 518                            0, | 
| 519                            pass_rect, | 519                            pass_rect, | 
| 520                            gfx::RectF(), | 520                            gfx::RectF(), | 
| 521                            WebKit::WebFilterOperations(), | 521                            FilterOperations(), | 
| 522                            filter, | 522                            filter, | 
| 523                            WebKit::WebFilterOperations()); | 523                            FilterOperations()); | 
| 524 | 524 | 
| 525   root_pass->quad_list.push_back(render_pass_quad.PassAs<DrawQuad>()); | 525   root_pass->quad_list.push_back(render_pass_quad.PassAs<DrawQuad>()); | 
| 526   RenderPassList pass_list; | 526   RenderPassList pass_list; | 
| 527 | 527 | 
| 528   pass_list.push_back(child_pass.Pass()); | 528   pass_list.push_back(child_pass.Pass()); | 
| 529   pass_list.push_back(root_pass.Pass()); | 529   pass_list.push_back(root_pass.Pass()); | 
| 530 | 530 | 
| 531   // This test has alpha=254 for the software renderer vs. alpha=255 for the gl | 531   // This test has alpha=254 for the software renderer vs. alpha=255 for the gl | 
| 532   // renderer so use a fuzzy comparator. | 532   // renderer so use a fuzzy comparator. | 
| 533   EXPECT_TRUE(this->RunPixelTest( | 533   EXPECT_TRUE(this->RunPixelTest( | 
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 710       scoped_ptr<RenderPassDrawQuad> filter_pass_quad = | 710       scoped_ptr<RenderPassDrawQuad> filter_pass_quad = | 
| 711           RenderPassDrawQuad::Create(); | 711           RenderPassDrawQuad::Create(); | 
| 712       filter_pass_quad->SetNew( | 712       filter_pass_quad->SetNew( | 
| 713           shared_state.get(), | 713           shared_state.get(), | 
| 714           filter_pass_content_rect_, | 714           filter_pass_content_rect_, | 
| 715           filter_pass_id, | 715           filter_pass_id, | 
| 716           false,  // is_replica | 716           false,  // is_replica | 
| 717           0,  // mask_resource_id | 717           0,  // mask_resource_id | 
| 718           filter_pass_content_rect_,  // contents_changed_since_last_frame | 718           filter_pass_content_rect_,  // contents_changed_since_last_frame | 
| 719           gfx::RectF(),  // mask_uv_rect | 719           gfx::RectF(),  // mask_uv_rect | 
| 720           WebKit::WebFilterOperations(),  // filters | 720           FilterOperations(),  // filters | 
| 721           skia::RefPtr<SkImageFilter>(),  // filter | 721           skia::RefPtr<SkImageFilter>(),  // filter | 
| 722           this->background_filters_); | 722           this->background_filters_); | 
| 723       root_pass->quad_list.push_back(filter_pass_quad.PassAs<DrawQuad>()); | 723       root_pass->quad_list.push_back(filter_pass_quad.PassAs<DrawQuad>()); | 
| 724       root_pass->shared_quad_state_list.push_back(shared_state.Pass()); | 724       root_pass->shared_quad_state_list.push_back(shared_state.Pass()); | 
| 725     } | 725     } | 
| 726 | 726 | 
| 727     const int kColumnWidth = device_viewport_rect.width() / 3; | 727     const int kColumnWidth = device_viewport_rect.width() / 3; | 
| 728 | 728 | 
| 729     gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20); | 729     gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20); | 
| 730     for (int i = 0; left_rect.y() < device_viewport_rect.height(); ++i) { | 730     for (int i = 0; left_rect.y() < device_viewport_rect.height(); ++i) { | 
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 772                             SK_ColorWHITE, | 772                             SK_ColorWHITE, | 
| 773                             false); | 773                             false); | 
| 774     root_pass->quad_list.push_back(background_quad.PassAs<DrawQuad>()); | 774     root_pass->quad_list.push_back(background_quad.PassAs<DrawQuad>()); | 
| 775     root_pass->shared_quad_state_list.push_back(shared_state.Pass()); | 775     root_pass->shared_quad_state_list.push_back(shared_state.Pass()); | 
| 776 | 776 | 
| 777     pass_list_.push_back(filter_pass.Pass()); | 777     pass_list_.push_back(filter_pass.Pass()); | 
| 778     pass_list_.push_back(root_pass.Pass()); | 778     pass_list_.push_back(root_pass.Pass()); | 
| 779   } | 779   } | 
| 780 | 780 | 
| 781   RenderPassList pass_list_; | 781   RenderPassList pass_list_; | 
| 782   WebKit::WebFilterOperations background_filters_; | 782   FilterOperations background_filters_; | 
| 783   gfx::Transform filter_pass_to_target_transform_; | 783   gfx::Transform filter_pass_to_target_transform_; | 
| 784   gfx::Rect filter_pass_content_rect_; | 784   gfx::Rect filter_pass_content_rect_; | 
| 785 }; | 785 }; | 
| 786 | 786 | 
| 787 typedef ::testing::Types<GLRenderer, SoftwareRenderer> | 787 typedef ::testing::Types<GLRenderer, SoftwareRenderer> | 
| 788     BackgroundFilterRendererTypes; | 788     BackgroundFilterRendererTypes; | 
| 789 TYPED_TEST_CASE(RendererPixelTestWithBackgroundFilter, | 789 TYPED_TEST_CASE(RendererPixelTestWithBackgroundFilter, | 
| 790                 BackgroundFilterRendererTypes); | 790                 BackgroundFilterRendererTypes); | 
| 791 | 791 | 
| 792 typedef RendererPixelTestWithBackgroundFilter<GLRenderer> | 792 typedef RendererPixelTestWithBackgroundFilter<GLRenderer> | 
| 793 GLRendererPixelTestWithBackgroundFilter; | 793 GLRendererPixelTestWithBackgroundFilter; | 
| 794 | 794 | 
| 795 // TODO(skaslev): The software renderer does not support filters yet. | 795 // TODO(skaslev): The software renderer does not support filters yet. | 
| 796 TEST_F(GLRendererPixelTestWithBackgroundFilter, InvertFilter) { | 796 TEST_F(GLRendererPixelTestWithBackgroundFilter, InvertFilter) { | 
| 797   this->background_filters_.append( | 797   this->background_filters_.Append( | 
| 798       WebKit::WebFilterOperation::createInvertFilter(1.f)); | 798       FilterOperation::CreateInvertFilter(1.f)); | 
| 799 | 799 | 
| 800   this->filter_pass_content_rect_ = gfx::Rect(this->device_viewport_size_); | 800   this->filter_pass_content_rect_ = gfx::Rect(this->device_viewport_size_); | 
| 801   this->filter_pass_content_rect_.Inset(12, 14, 16, 18); | 801   this->filter_pass_content_rect_.Inset(12, 14, 16, 18); | 
| 802 | 802 | 
| 803   this->SetUpRenderPassList(); | 803   this->SetUpRenderPassList(); | 
| 804   EXPECT_TRUE(this->RunPixelTest( | 804   EXPECT_TRUE(this->RunPixelTest( | 
| 805       &this->pass_list_, | 805       &this->pass_list_, | 
| 806       base::FilePath(FILE_PATH_LITERAL("background_filter.png")), | 806       base::FilePath(FILE_PATH_LITERAL("background_filter.png")), | 
| 807       ExactPixelComparator(true))); | 807       ExactPixelComparator(true))); | 
| 808 } | 808 } | 
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1177 | 1177 | 
| 1178   EXPECT_TRUE(this->RunPixelTest( | 1178   EXPECT_TRUE(this->RunPixelTest( | 
| 1179       &pass_list, | 1179       &pass_list, | 
| 1180       base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), | 1180       base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), | 
| 1181       ExactPixelComparator(true))); | 1181       ExactPixelComparator(true))); | 
| 1182 } | 1182 } | 
| 1183 #endif  // !defined(OS_ANDROID) | 1183 #endif  // !defined(OS_ANDROID) | 
| 1184 | 1184 | 
| 1185 }  // namespace | 1185 }  // namespace | 
| 1186 }  // namespace cc | 1186 }  // namespace cc | 
| OLD | NEW | 
|---|