| 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 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 void CreateTestRenderPassDrawQuad(const SharedQuadState* shared_state, | 97 void CreateTestRenderPassDrawQuad(const SharedQuadState* shared_state, |
| 98 const gfx::Rect& rect, | 98 const gfx::Rect& rect, |
| 99 RenderPass::Id pass_id, | 99 RenderPass::Id pass_id, |
| 100 RenderPass* render_pass) { | 100 RenderPass* render_pass) { |
| 101 RenderPassDrawQuad* quad = | 101 RenderPassDrawQuad* quad = |
| 102 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 102 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 103 quad->SetNew(shared_state, | 103 quad->SetNew(shared_state, |
| 104 rect, | 104 rect, |
| 105 rect, | 105 rect, |
| 106 pass_id, | 106 pass_id, |
| 107 false, // is_replica | |
| 108 0, // mask_resource_id | 107 0, // mask_resource_id |
| 109 rect, // contents_changed_since_last_frame | |
| 110 gfx::RectF(1.f, 1.f), // mask_uv_rect | 108 gfx::RectF(1.f, 1.f), // mask_uv_rect |
| 111 FilterOperations(), // foreground filters | 109 FilterOperations(), // foreground filters |
| 112 FilterOperations()); // background filters | 110 FilterOperations()); // background filters |
| 113 } | 111 } |
| 114 | 112 |
| 115 void CreateTestTextureDrawQuad(const gfx::Rect& rect, | 113 void CreateTestTextureDrawQuad(const gfx::Rect& rect, |
| 116 SkColor texel_color, | 114 SkColor texel_color, |
| 117 SkColor background_color, | 115 SkColor background_color, |
| 118 bool premultiplied_alpha, | 116 bool premultiplied_alpha, |
| 119 const SharedQuadState* shared_state, | 117 const SharedQuadState* shared_state, |
| (...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 799 skia::AdoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), NULL)); | 797 skia::AdoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), NULL)); |
| 800 FilterOperations filters; | 798 FilterOperations filters; |
| 801 filters.Append(FilterOperation::CreateReferenceFilter(filter)); | 799 filters.Append(FilterOperation::CreateReferenceFilter(filter)); |
| 802 | 800 |
| 803 RenderPassDrawQuad* render_pass_quad = | 801 RenderPassDrawQuad* render_pass_quad = |
| 804 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 802 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 805 render_pass_quad->SetNew(pass_shared_state, | 803 render_pass_quad->SetNew(pass_shared_state, |
| 806 pass_rect, | 804 pass_rect, |
| 807 pass_rect, | 805 pass_rect, |
| 808 child_pass_id, | 806 child_pass_id, |
| 809 false, | |
| 810 0, | 807 0, |
| 811 pass_rect, | |
| 812 gfx::RectF(), | 808 gfx::RectF(), |
| 813 filters, | 809 filters, |
| 814 FilterOperations()); | 810 FilterOperations()); |
| 815 | 811 |
| 816 RenderPassList pass_list; | 812 RenderPassList pass_list; |
| 817 pass_list.push_back(child_pass.Pass()); | 813 pass_list.push_back(child_pass.Pass()); |
| 818 pass_list.push_back(root_pass.Pass()); | 814 pass_list.push_back(root_pass.Pass()); |
| 819 | 815 |
| 820 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl | 816 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl |
| 821 // renderer so use a fuzzy comparator. | 817 // renderer so use a fuzzy comparator. |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 871 | 867 |
| 872 FilterOperations filters; | 868 FilterOperations filters; |
| 873 filters.Append(FilterOperation::CreateSaturateFilter(0.5f)); | 869 filters.Append(FilterOperation::CreateSaturateFilter(0.5f)); |
| 874 | 870 |
| 875 RenderPassDrawQuad* render_pass_quad = | 871 RenderPassDrawQuad* render_pass_quad = |
| 876 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 872 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 877 render_pass_quad->SetNew(pass_shared_state, | 873 render_pass_quad->SetNew(pass_shared_state, |
| 878 pass_rect, | 874 pass_rect, |
| 879 pass_rect, | 875 pass_rect, |
| 880 child_pass_id, | 876 child_pass_id, |
| 881 false, | |
| 882 0, | 877 0, |
| 883 pass_rect, | |
| 884 gfx::RectF(), | 878 gfx::RectF(), |
| 885 filters, | 879 filters, |
| 886 FilterOperations()); | 880 FilterOperations()); |
| 887 | 881 |
| 888 RenderPassList pass_list; | 882 RenderPassList pass_list; |
| 889 pass_list.push_back(child_pass.Pass()); | 883 pass_list.push_back(child_pass.Pass()); |
| 890 pass_list.push_back(root_pass.Pass()); | 884 pass_list.push_back(root_pass.Pass()); |
| 891 | 885 |
| 892 EXPECT_TRUE(this->RunPixelTest( | 886 EXPECT_TRUE(this->RunPixelTest( |
| 893 &pass_list, | 887 &pass_list, |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 942 FilterOperations filters; | 936 FilterOperations filters; |
| 943 filters.Append(FilterOperation::CreateGrayscaleFilter(1.f)); | 937 filters.Append(FilterOperation::CreateGrayscaleFilter(1.f)); |
| 944 filters.Append(FilterOperation::CreateBrightnessFilter(0.5f)); | 938 filters.Append(FilterOperation::CreateBrightnessFilter(0.5f)); |
| 945 | 939 |
| 946 RenderPassDrawQuad* render_pass_quad = | 940 RenderPassDrawQuad* render_pass_quad = |
| 947 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 941 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 948 render_pass_quad->SetNew(pass_shared_state, | 942 render_pass_quad->SetNew(pass_shared_state, |
| 949 pass_rect, | 943 pass_rect, |
| 950 pass_rect, | 944 pass_rect, |
| 951 child_pass_id, | 945 child_pass_id, |
| 952 false, | |
| 953 0, | 946 0, |
| 954 pass_rect, | |
| 955 gfx::RectF(), | 947 gfx::RectF(), |
| 956 filters, | 948 filters, |
| 957 FilterOperations()); | 949 FilterOperations()); |
| 958 | 950 |
| 959 RenderPassList pass_list; | 951 RenderPassList pass_list; |
| 960 pass_list.push_back(child_pass.Pass()); | 952 pass_list.push_back(child_pass.Pass()); |
| 961 pass_list.push_back(root_pass.Pass()); | 953 pass_list.push_back(root_pass.Pass()); |
| 962 | 954 |
| 963 EXPECT_TRUE(this->RunPixelTest( | 955 EXPECT_TRUE(this->RunPixelTest( |
| 964 &pass_list, | 956 &pass_list, |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1035 skia::AdoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), NULL)); | 1027 skia::AdoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), NULL)); |
| 1036 FilterOperations filters; | 1028 FilterOperations filters; |
| 1037 filters.Append(FilterOperation::CreateReferenceFilter(filter)); | 1029 filters.Append(FilterOperation::CreateReferenceFilter(filter)); |
| 1038 | 1030 |
| 1039 RenderPassDrawQuad* render_pass_quad = | 1031 RenderPassDrawQuad* render_pass_quad = |
| 1040 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1032 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1041 render_pass_quad->SetNew(pass_shared_state, | 1033 render_pass_quad->SetNew(pass_shared_state, |
| 1042 pass_rect, | 1034 pass_rect, |
| 1043 pass_rect, | 1035 pass_rect, |
| 1044 child_pass_id, | 1036 child_pass_id, |
| 1045 false, | |
| 1046 0, | 1037 0, |
| 1047 pass_rect, | |
| 1048 gfx::RectF(), | 1038 gfx::RectF(), |
| 1049 filters, | 1039 filters, |
| 1050 FilterOperations()); | 1040 FilterOperations()); |
| 1051 | 1041 |
| 1052 RenderPassList pass_list; | 1042 RenderPassList pass_list; |
| 1053 | 1043 |
| 1054 pass_list.push_back(child_pass.Pass()); | 1044 pass_list.push_back(child_pass.Pass()); |
| 1055 pass_list.push_back(root_pass.Pass()); | 1045 pass_list.push_back(root_pass.Pass()); |
| 1056 | 1046 |
| 1057 // This test has alpha=254 for the software renderer vs. alpha=255 for the gl | 1047 // 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... |
| 1243 EXPECT_NE(sub_rect.bottom(), child_pass->output_rect.bottom()); | 1233 EXPECT_NE(sub_rect.bottom(), child_pass->output_rect.bottom()); |
| 1244 EXPECT_TRUE(child_pass->output_rect.Contains(sub_rect)); | 1234 EXPECT_TRUE(child_pass->output_rect.Contains(sub_rect)); |
| 1245 | 1235 |
| 1246 // Set up a mask on the RenderPassDrawQuad. | 1236 // Set up a mask on the RenderPassDrawQuad. |
| 1247 RenderPassDrawQuad* mask_quad = | 1237 RenderPassDrawQuad* mask_quad = |
| 1248 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1238 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1249 mask_quad->SetNew(root_pass_shared_state, | 1239 mask_quad->SetNew(root_pass_shared_state, |
| 1250 sub_rect, | 1240 sub_rect, |
| 1251 sub_rect, | 1241 sub_rect, |
| 1252 child_pass_id, | 1242 child_pass_id, |
| 1253 false, // is_replica | |
| 1254 mask_resource_id, | 1243 mask_resource_id, |
| 1255 sub_rect, // contents_changed_since_last_frame | |
| 1256 gfx::RectF(1.f, 1.f), // mask_uv_rect | 1244 gfx::RectF(1.f, 1.f), // mask_uv_rect |
| 1257 FilterOperations(), // foreground filters | 1245 FilterOperations(), // foreground filters |
| 1258 FilterOperations()); // background filters | 1246 FilterOperations()); // background filters |
| 1259 | 1247 |
| 1260 // White background behind the masked render pass. | 1248 // White background behind the masked render pass. |
| 1261 SolidColorDrawQuad* white = | 1249 SolidColorDrawQuad* white = |
| 1262 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1250 root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1263 white->SetNew(root_pass_shared_state, | 1251 white->SetNew(root_pass_shared_state, |
| 1264 viewport_rect, | 1252 viewport_rect, |
| 1265 viewport_rect, | 1253 viewport_rect, |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1317 CreateTestSharedQuadState(filter_pass_to_target_transform_, | 1305 CreateTestSharedQuadState(filter_pass_to_target_transform_, |
| 1318 filter_pass_content_rect_, | 1306 filter_pass_content_rect_, |
| 1319 filter_pass.get()); | 1307 filter_pass.get()); |
| 1320 RenderPassDrawQuad* filter_pass_quad = | 1308 RenderPassDrawQuad* filter_pass_quad = |
| 1321 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 1309 root_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 1322 filter_pass_quad->SetNew( | 1310 filter_pass_quad->SetNew( |
| 1323 shared_state, | 1311 shared_state, |
| 1324 filter_pass_content_rect_, | 1312 filter_pass_content_rect_, |
| 1325 filter_pass_content_rect_, | 1313 filter_pass_content_rect_, |
| 1326 filter_pass_id, | 1314 filter_pass_id, |
| 1327 false, // is_replica | |
| 1328 0, // mask_resource_id | 1315 0, // mask_resource_id |
| 1329 filter_pass_content_rect_, // contents_changed_since_last_frame | |
| 1330 gfx::RectF(), // mask_uv_rect | 1316 gfx::RectF(), // mask_uv_rect |
| 1331 FilterOperations(), // filters | 1317 FilterOperations(), // filters |
| 1332 this->background_filters_); | 1318 this->background_filters_); |
| 1333 } | 1319 } |
| 1334 | 1320 |
| 1335 const int kColumnWidth = device_viewport_rect.width() / 3; | 1321 const int kColumnWidth = device_viewport_rect.width() / 3; |
| 1336 | 1322 |
| 1337 gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20); | 1323 gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20); |
| 1338 for (int i = 0; left_rect.y() < device_viewport_rect.height(); ++i) { | 1324 for (int i = 0; left_rect.y() < device_viewport_rect.height(); ++i) { |
| 1339 SharedQuadState* shared_state = CreateTestSharedQuadState( | 1325 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| (...skipping 834 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2174 EXPECT_TRUE(this->RunPixelTest( | 2160 EXPECT_TRUE(this->RunPixelTest( |
| 2175 &pass_list, | 2161 &pass_list, |
| 2176 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), | 2162 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), |
| 2177 FuzzyPixelOffByOneComparator(true))); | 2163 FuzzyPixelOffByOneComparator(true))); |
| 2178 } | 2164 } |
| 2179 | 2165 |
| 2180 #endif // !defined(OS_ANDROID) | 2166 #endif // !defined(OS_ANDROID) |
| 2181 | 2167 |
| 2182 } // namespace | 2168 } // namespace |
| 2183 } // namespace cc | 2169 } // namespace cc |
| OLD | NEW |