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 |