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