| 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/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/quads/texture_draw_quad.h" | 10 #include "cc/quads/texture_draw_quad.h" |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 void CreateTestRenderPassDrawQuad(const SharedQuadState* shared_state, | 96 void CreateTestRenderPassDrawQuad(const SharedQuadState* shared_state, |
| 97 const gfx::Rect& rect, | 97 const gfx::Rect& rect, |
| 98 RenderPassId pass_id, | 98 RenderPassId pass_id, |
| 99 RenderPass* render_pass) { | 99 RenderPass* render_pass) { |
| 100 RenderPassDrawQuad* quad = | 100 RenderPassDrawQuad* quad = |
| 101 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 101 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 102 quad->SetNew(shared_state, | 102 quad->SetNew(shared_state, |
| 103 rect, | 103 rect, |
| 104 rect, | 104 rect, |
| 105 pass_id, | 105 pass_id, |
| 106 0, // mask_resource_id | 106 0, // mask_resource_id |
| 107 gfx::RectF(1.f, 1.f), // mask_uv_rect | 107 gfx::Vector2dF(), // mask_uv_scale |
| 108 FilterOperations(), // foreground filters | 108 gfx::Size(), // mask_texture_size |
| 109 gfx::Vector2dF(), // filters scale | 109 FilterOperations(), // foreground filters |
| 110 FilterOperations()); // background filters | 110 gfx::Vector2dF(), // filters scale |
| 111 FilterOperations()); // background filters |
| 111 } | 112 } |
| 112 | 113 |
| 113 void CreateTestTextureDrawQuad(const gfx::Rect& rect, | 114 void CreateTestTextureDrawQuad(const gfx::Rect& rect, |
| 114 SkColor texel_color, | 115 SkColor texel_color, |
| 115 SkColor background_color, | 116 SkColor background_color, |
| 116 bool premultiplied_alpha, | 117 bool premultiplied_alpha, |
| 117 const SharedQuadState* shared_state, | 118 const SharedQuadState* shared_state, |
| 118 ResourceProvider* resource_provider, | 119 ResourceProvider* resource_provider, |
| 119 RenderPass* render_pass) { | 120 RenderPass* render_pass) { |
| 120 SkPMColor pixel_color = premultiplied_alpha ? | 121 SkPMColor pixel_color = premultiplied_alpha ? |
| (...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 791 FilterOperations filters; | 792 FilterOperations filters; |
| 792 filters.Append(FilterOperation::CreateReferenceFilter(filter)); | 793 filters.Append(FilterOperation::CreateReferenceFilter(filter)); |
| 793 | 794 |
| 794 RenderPassDrawQuad* render_pass_quad = | 795 RenderPassDrawQuad* render_pass_quad = |
| 795 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 796 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 796 render_pass_quad->SetNew(pass_shared_state, | 797 render_pass_quad->SetNew(pass_shared_state, |
| 797 pass_rect, | 798 pass_rect, |
| 798 pass_rect, | 799 pass_rect, |
| 799 child_pass_id, | 800 child_pass_id, |
| 800 0, | 801 0, |
| 801 gfx::RectF(), | 802 gfx::Vector2dF(), |
| 803 gfx::Size(), |
| 802 filters, | 804 filters, |
| 803 gfx::Vector2dF(), | 805 gfx::Vector2dF(), |
| 804 FilterOperations()); | 806 FilterOperations()); |
| 805 | 807 |
| 806 RenderPassList pass_list; | 808 RenderPassList pass_list; |
| 807 pass_list.push_back(child_pass.Pass()); | 809 pass_list.push_back(child_pass.Pass()); |
| 808 pass_list.push_back(root_pass.Pass()); | 810 pass_list.push_back(root_pass.Pass()); |
| 809 | 811 |
| 810 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl | 812 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl |
| 811 // renderer so use a fuzzy comparator. | 813 // renderer so use a fuzzy comparator. |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 862 FilterOperations filters; | 864 FilterOperations filters; |
| 863 filters.Append(FilterOperation::CreateSaturateFilter(0.5f)); | 865 filters.Append(FilterOperation::CreateSaturateFilter(0.5f)); |
| 864 | 866 |
| 865 RenderPassDrawQuad* render_pass_quad = | 867 RenderPassDrawQuad* render_pass_quad = |
| 866 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 868 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 867 render_pass_quad->SetNew(pass_shared_state, | 869 render_pass_quad->SetNew(pass_shared_state, |
| 868 pass_rect, | 870 pass_rect, |
| 869 pass_rect, | 871 pass_rect, |
| 870 child_pass_id, | 872 child_pass_id, |
| 871 0, | 873 0, |
| 872 gfx::RectF(), | 874 gfx::Vector2dF(), |
| 875 gfx::Size(), |
| 873 filters, | 876 filters, |
| 874 gfx::Vector2dF(), | 877 gfx::Vector2dF(), |
| 875 FilterOperations()); | 878 FilterOperations()); |
| 876 | 879 |
| 877 RenderPassList pass_list; | 880 RenderPassList pass_list; |
| 878 pass_list.push_back(child_pass.Pass()); | 881 pass_list.push_back(child_pass.Pass()); |
| 879 pass_list.push_back(root_pass.Pass()); | 882 pass_list.push_back(root_pass.Pass()); |
| 880 | 883 |
| 881 EXPECT_TRUE(this->RunPixelTest( | 884 EXPECT_TRUE(this->RunPixelTest( |
| 882 &pass_list, | 885 &pass_list, |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 932 filters.Append(FilterOperation::CreateGrayscaleFilter(1.f)); | 935 filters.Append(FilterOperation::CreateGrayscaleFilter(1.f)); |
| 933 filters.Append(FilterOperation::CreateBrightnessFilter(0.5f)); | 936 filters.Append(FilterOperation::CreateBrightnessFilter(0.5f)); |
| 934 | 937 |
| 935 RenderPassDrawQuad* render_pass_quad = | 938 RenderPassDrawQuad* render_pass_quad = |
| 936 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 939 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 937 render_pass_quad->SetNew(pass_shared_state, | 940 render_pass_quad->SetNew(pass_shared_state, |
| 938 pass_rect, | 941 pass_rect, |
| 939 pass_rect, | 942 pass_rect, |
| 940 child_pass_id, | 943 child_pass_id, |
| 941 0, | 944 0, |
| 942 gfx::RectF(), | 945 gfx::Vector2dF(), |
| 946 gfx::Size(), |
| 943 filters, | 947 filters, |
| 944 gfx::Vector2dF(), | 948 gfx::Vector2dF(), |
| 945 FilterOperations()); | 949 FilterOperations()); |
| 946 | 950 |
| 947 RenderPassList pass_list; | 951 RenderPassList pass_list; |
| 948 pass_list.push_back(child_pass.Pass()); | 952 pass_list.push_back(child_pass.Pass()); |
| 949 pass_list.push_back(root_pass.Pass()); | 953 pass_list.push_back(root_pass.Pass()); |
| 950 | 954 |
| 951 EXPECT_TRUE(this->RunPixelTest( | 955 EXPECT_TRUE(this->RunPixelTest( |
| 952 &pass_list, | 956 &pass_list, |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1024 FilterOperations filters; | 1028 FilterOperations filters; |
| 1025 filters.Append(FilterOperation::CreateReferenceFilter(filter)); | 1029 filters.Append(FilterOperation::CreateReferenceFilter(filter)); |
| 1026 | 1030 |
| 1027 RenderPassDrawQuad* render_pass_quad = | 1031 RenderPassDrawQuad* render_pass_quad = |
| 1028 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1032 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1029 render_pass_quad->SetNew(pass_shared_state, | 1033 render_pass_quad->SetNew(pass_shared_state, |
| 1030 pass_rect, | 1034 pass_rect, |
| 1031 pass_rect, | 1035 pass_rect, |
| 1032 child_pass_id, | 1036 child_pass_id, |
| 1033 0, | 1037 0, |
| 1034 gfx::RectF(), | 1038 gfx::Vector2dF(), |
| 1039 gfx::Size(), |
| 1035 filters, | 1040 filters, |
| 1036 gfx::Vector2dF(), | 1041 gfx::Vector2dF(), |
| 1037 FilterOperations()); | 1042 FilterOperations()); |
| 1038 | 1043 |
| 1039 RenderPassList pass_list; | 1044 RenderPassList pass_list; |
| 1040 | 1045 |
| 1041 pass_list.push_back(child_pass.Pass()); | 1046 pass_list.push_back(child_pass.Pass()); |
| 1042 pass_list.push_back(root_pass.Pass()); | 1047 pass_list.push_back(root_pass.Pass()); |
| 1043 | 1048 |
| 1044 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl | 1049 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1230 EXPECT_NE(sub_rect.bottom(), child_pass->output_rect.bottom()); | 1235 EXPECT_NE(sub_rect.bottom(), child_pass->output_rect.bottom()); |
| 1231 | 1236 |
| 1232 // Set up a mask on the RenderPassDrawQuad. | 1237 // Set up a mask on the RenderPassDrawQuad. |
| 1233 RenderPassDrawQuad* mask_quad = | 1238 RenderPassDrawQuad* mask_quad = |
| 1234 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1239 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1235 mask_quad->SetNew(root_pass_shared_state, | 1240 mask_quad->SetNew(root_pass_shared_state, |
| 1236 sub_rect, | 1241 sub_rect, |
| 1237 sub_rect, | 1242 sub_rect, |
| 1238 child_pass_id, | 1243 child_pass_id, |
| 1239 mask_resource_id, | 1244 mask_resource_id, |
| 1240 gfx::RectF(0.5f, 0.5f, 2.f, 1.f), // mask_uv_rect | 1245 gfx::Vector2dF(2.f, 1.f), // mask_uv_scale |
| 1241 FilterOperations(), // foreground filters | 1246 gfx::Size(mask_rect.size()), // mask_texture_size |
| 1242 gfx::Vector2dF(), // filters scale | 1247 FilterOperations(), // foreground filters |
| 1243 FilterOperations()); // background filters | 1248 gfx::Vector2dF(), // filters scale |
| 1249 FilterOperations()); // background filters |
| 1244 | 1250 |
| 1245 // White background behind the masked render pass. | 1251 // White background behind the masked render pass. |
| 1246 SolidColorDrawQuad* white = | 1252 SolidColorDrawQuad* white = |
| 1247 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1253 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1248 white->SetNew(root_pass_shared_state, | 1254 white->SetNew(root_pass_shared_state, |
| 1249 viewport_rect, | 1255 viewport_rect, |
| 1250 viewport_rect, | 1256 viewport_rect, |
| 1251 SK_ColorWHITE, | 1257 SK_ColorWHITE, |
| 1252 false); | 1258 false); |
| 1253 | 1259 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1297 false); | 1303 false); |
| 1298 } | 1304 } |
| 1299 | 1305 |
| 1300 { | 1306 { |
| 1301 SharedQuadState* shared_state = | 1307 SharedQuadState* shared_state = |
| 1302 CreateTestSharedQuadState(filter_pass_to_target_transform_, | 1308 CreateTestSharedQuadState(filter_pass_to_target_transform_, |
| 1303 filter_pass_content_rect_, | 1309 filter_pass_content_rect_, |
| 1304 filter_pass.get()); | 1310 filter_pass.get()); |
| 1305 RenderPassDrawQuad* filter_pass_quad = | 1311 RenderPassDrawQuad* filter_pass_quad = |
| 1306 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1312 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1307 filter_pass_quad->SetNew( | 1313 filter_pass_quad->SetNew(shared_state, |
| 1308 shared_state, | 1314 filter_pass_content_rect_, |
| 1309 filter_pass_content_rect_, | 1315 filter_pass_content_rect_, |
| 1310 filter_pass_content_rect_, | 1316 filter_pass_id, |
| 1311 filter_pass_id, | 1317 0, // mask_resource_id |
| 1312 0, // mask_resource_id | 1318 gfx::Vector2dF(), // mask_uv_scale |
| 1313 gfx::RectF(), // mask_uv_rect | 1319 gfx::Size(), // mask_texture_size |
| 1314 FilterOperations(), // filters | 1320 FilterOperations(), // filters |
| 1315 gfx::Vector2dF(), // filters_scale | 1321 gfx::Vector2dF(), // filters_scale |
| 1316 this->background_filters_); | 1322 this->background_filters_); |
| 1317 } | 1323 } |
| 1318 | 1324 |
| 1319 const int kColumnWidth = device_viewport_rect.width() / 3; | 1325 const int kColumnWidth = device_viewport_rect.width() / 3; |
| 1320 | 1326 |
| 1321 gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20); | 1327 gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20); |
| 1322 for (int i = 0; left_rect.y() < device_viewport_rect.height(); ++i) { | 1328 for (int i = 0; left_rect.y() < device_viewport_rect.height(); ++i) { |
| 1323 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1329 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 1324 identity_content_to_target_transform, left_rect, root_pass.get()); | 1330 identity_content_to_target_transform, left_rect, root_pass.get()); |
| 1325 SolidColorDrawQuad* color_quad = | 1331 SolidColorDrawQuad* color_quad = |
| 1326 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1332 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| (...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2200 EXPECT_TRUE(this->RunPixelTest( | 2206 EXPECT_TRUE(this->RunPixelTest( |
| 2201 &pass_list, | 2207 &pass_list, |
| 2202 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), | 2208 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), |
| 2203 FuzzyPixelOffByOneComparator(true))); | 2209 FuzzyPixelOffByOneComparator(true))); |
| 2204 } | 2210 } |
| 2205 | 2211 |
| 2206 #endif // !defined(OS_ANDROID) | 2212 #endif // !defined(OS_ANDROID) |
| 2207 | 2213 |
| 2208 } // namespace | 2214 } // namespace |
| 2209 } // namespace cc | 2215 } // namespace cc |
| OLD | NEW |