OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 <stddef.h> | 5 #include <stddef.h> |
6 #include <string.h> | 6 #include <string.h> |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
11 #include "build/build_config.h" | 11 #include "build/build_config.h" |
12 #include "cc/ipc/cc_param_traits.h" | 12 #include "cc/ipc/cc_param_traits.h" |
13 #include "cc/output/compositor_frame.h" | 13 #include "cc/output/compositor_frame.h" |
14 #include "cc/quads/picture_draw_quad.h" | 14 #include "cc/quads/picture_draw_quad.h" |
15 #include "cc/quads/render_pass_draw_quad.h" | 15 #include "cc/quads/render_pass_draw_quad.h" |
16 #include "content/public/common/common_param_traits.h" | 16 #include "content/public/common/common_param_traits.h" |
17 #include "ipc/ipc_message.h" | 17 #include "ipc/ipc_message.h" |
18 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
19 #include "third_party/skia/include/effects/SkBlurImageFilter.h" | 19 #include "third_party/skia/include/effects/SkBlurImageFilter.h" |
20 | 20 |
21 #if defined(OS_POSIX) | 21 #if defined(OS_POSIX) |
22 #include "base/file_descriptor_posix.h" | 22 #include "base/file_descriptor_posix.h" |
23 #endif | 23 #endif |
24 | 24 |
25 using cc::DelegatedFrameData; | 25 using cc::DelegatedFrameData; |
26 using cc::DebugBorderDrawQuad; | 26 using cc::DebugBorderDrawQuad; |
27 using cc::DrawQuad; | 27 using cc::DrawQuad; |
28 using cc::FilterOperation; | 28 using cc::FilterOperation; |
29 using cc::FilterOperations; | 29 using cc::FilterOperations; |
30 using cc::IOSurfaceDrawQuad; | |
danakj
2016/05/18 22:00:52
This file moved to cc/ipc/ fyi
| |
31 using cc::PictureDrawQuad; | 30 using cc::PictureDrawQuad; |
32 using cc::RenderPass; | 31 using cc::RenderPass; |
33 using cc::RenderPassId; | 32 using cc::RenderPassId; |
34 using cc::RenderPassDrawQuad; | 33 using cc::RenderPassDrawQuad; |
35 using cc::ResourceId; | 34 using cc::ResourceId; |
36 using cc::ResourceProvider; | 35 using cc::ResourceProvider; |
37 using cc::SharedQuadState; | 36 using cc::SharedQuadState; |
38 using cc::SolidColorDrawQuad; | 37 using cc::SolidColorDrawQuad; |
39 using cc::SurfaceDrawQuad; | 38 using cc::SurfaceDrawQuad; |
40 using cc::TextureDrawQuad; | 39 using cc::TextureDrawQuad; |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
76 EXPECT_EQ(a->visible_rect.ToString(), b->visible_rect.ToString()); | 75 EXPECT_EQ(a->visible_rect.ToString(), b->visible_rect.ToString()); |
77 EXPECT_EQ(a->needs_blending, b->needs_blending); | 76 EXPECT_EQ(a->needs_blending, b->needs_blending); |
78 | 77 |
79 Compare(a->shared_quad_state, b->shared_quad_state); | 78 Compare(a->shared_quad_state, b->shared_quad_state); |
80 | 79 |
81 switch (a->material) { | 80 switch (a->material) { |
82 case DrawQuad::DEBUG_BORDER: | 81 case DrawQuad::DEBUG_BORDER: |
83 Compare(DebugBorderDrawQuad::MaterialCast(a), | 82 Compare(DebugBorderDrawQuad::MaterialCast(a), |
84 DebugBorderDrawQuad::MaterialCast(b)); | 83 DebugBorderDrawQuad::MaterialCast(b)); |
85 break; | 84 break; |
86 case DrawQuad::IO_SURFACE_CONTENT: | |
87 Compare(IOSurfaceDrawQuad::MaterialCast(a), | |
88 IOSurfaceDrawQuad::MaterialCast(b)); | |
89 break; | |
90 case DrawQuad::PICTURE_CONTENT: | 85 case DrawQuad::PICTURE_CONTENT: |
91 Compare(PictureDrawQuad::MaterialCast(a), | 86 Compare(PictureDrawQuad::MaterialCast(a), |
92 PictureDrawQuad::MaterialCast(b)); | 87 PictureDrawQuad::MaterialCast(b)); |
93 break; | 88 break; |
94 case DrawQuad::RENDER_PASS: | 89 case DrawQuad::RENDER_PASS: |
95 Compare(RenderPassDrawQuad::MaterialCast(a), | 90 Compare(RenderPassDrawQuad::MaterialCast(a), |
96 RenderPassDrawQuad::MaterialCast(b)); | 91 RenderPassDrawQuad::MaterialCast(b)); |
97 break; | 92 break; |
98 case DrawQuad::TEXTURE_CONTENT: | 93 case DrawQuad::TEXTURE_CONTENT: |
99 Compare(TextureDrawQuad::MaterialCast(a), | 94 Compare(TextureDrawQuad::MaterialCast(a), |
(...skipping 22 matching lines...) Expand all Loading... | |
122 case DrawQuad::INVALID: | 117 case DrawQuad::INVALID: |
123 break; | 118 break; |
124 } | 119 } |
125 } | 120 } |
126 | 121 |
127 void Compare(const DebugBorderDrawQuad* a, const DebugBorderDrawQuad* b) { | 122 void Compare(const DebugBorderDrawQuad* a, const DebugBorderDrawQuad* b) { |
128 EXPECT_EQ(a->color, b->color); | 123 EXPECT_EQ(a->color, b->color); |
129 EXPECT_EQ(a->width, b->width); | 124 EXPECT_EQ(a->width, b->width); |
130 } | 125 } |
131 | 126 |
132 void Compare(const IOSurfaceDrawQuad* a, const IOSurfaceDrawQuad* b) { | |
133 EXPECT_EQ(a->io_surface_size.ToString(), b->io_surface_size.ToString()); | |
134 EXPECT_EQ(a->io_surface_resource_id(), b->io_surface_resource_id()); | |
135 EXPECT_EQ(a->orientation, b->orientation); | |
136 } | |
137 | |
138 void Compare(const RenderPassDrawQuad* a, const RenderPassDrawQuad* b) { | 127 void Compare(const RenderPassDrawQuad* a, const RenderPassDrawQuad* b) { |
139 EXPECT_EQ(a->render_pass_id, b->render_pass_id); | 128 EXPECT_EQ(a->render_pass_id, b->render_pass_id); |
140 EXPECT_EQ(a->mask_resource_id(), b->mask_resource_id()); | 129 EXPECT_EQ(a->mask_resource_id(), b->mask_resource_id()); |
141 EXPECT_EQ(a->mask_uv_scale.ToString(), b->mask_uv_scale.ToString()); | 130 EXPECT_EQ(a->mask_uv_scale.ToString(), b->mask_uv_scale.ToString()); |
142 EXPECT_EQ(a->mask_texture_size.ToString(), b->mask_texture_size.ToString()); | 131 EXPECT_EQ(a->mask_texture_size.ToString(), b->mask_texture_size.ToString()); |
143 EXPECT_EQ(a->filters.size(), b->filters.size()); | 132 EXPECT_EQ(a->filters.size(), b->filters.size()); |
144 for (size_t i = 0; i < a->filters.size(); ++i) { | 133 for (size_t i = 0; i < a->filters.size(); ++i) { |
145 if (a->filters.at(i).type() != cc::FilterOperation::REFERENCE) { | 134 if (a->filters.at(i).type() != cc::FilterOperation::REFERENCE) { |
146 EXPECT_EQ(a->filters.at(i), b->filters.at(i)); | 135 EXPECT_EQ(a->filters.at(i), b->filters.at(i)); |
147 } else { | 136 } else { |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
259 bool arbitrary_bool4 = true; | 248 bool arbitrary_bool4 = true; |
260 bool arbitrary_bool5 = false; | 249 bool arbitrary_bool5 = false; |
261 int arbitrary_context_id1 = 12; | 250 int arbitrary_context_id1 = 12; |
262 int arbitrary_context_id2 = 57; | 251 int arbitrary_context_id2 = 57; |
263 int arbitrary_context_id3 = -503; | 252 int arbitrary_context_id3 = -503; |
264 int arbitrary_int = 5; | 253 int arbitrary_int = 5; |
265 SkColor arbitrary_color = SkColorSetARGB(25, 36, 47, 58); | 254 SkColor arbitrary_color = SkColorSetARGB(25, 36, 47, 58); |
266 SkXfermode::Mode arbitrary_blend_mode1 = SkXfermode::kScreen_Mode; | 255 SkXfermode::Mode arbitrary_blend_mode1 = SkXfermode::kScreen_Mode; |
267 SkXfermode::Mode arbitrary_blend_mode2 = SkXfermode::kLighten_Mode; | 256 SkXfermode::Mode arbitrary_blend_mode2 = SkXfermode::kLighten_Mode; |
268 SkXfermode::Mode arbitrary_blend_mode3 = SkXfermode::kOverlay_Mode; | 257 SkXfermode::Mode arbitrary_blend_mode3 = SkXfermode::kOverlay_Mode; |
269 IOSurfaceDrawQuad::Orientation arbitrary_orientation = | |
270 IOSurfaceDrawQuad::UNFLIPPED; | |
271 ResourceId arbitrary_resourceid1 = 55; | 258 ResourceId arbitrary_resourceid1 = 55; |
272 ResourceId arbitrary_resourceid2 = 47; | 259 ResourceId arbitrary_resourceid2 = 47; |
273 ResourceId arbitrary_resourceid3 = 23; | 260 ResourceId arbitrary_resourceid3 = 23; |
274 ResourceId arbitrary_resourceid4 = 16; | 261 ResourceId arbitrary_resourceid4 = 16; |
275 SkScalar arbitrary_sigma = SkFloatToScalar(2.0f); | 262 SkScalar arbitrary_sigma = SkFloatToScalar(2.0f); |
276 YUVVideoDrawQuad::ColorSpace arbitrary_color_space = | 263 YUVVideoDrawQuad::ColorSpace arbitrary_color_space = |
277 YUVVideoDrawQuad::REC_601; | 264 YUVVideoDrawQuad::REC_601; |
278 | 265 |
279 RenderPassId child_id(30, 5); | 266 RenderPassId child_id(30, 5); |
280 RenderPassId root_id(10, 14); | 267 RenderPassId root_id(10, 14); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
320 debugborder_in->SetAll(shared_state1_in, | 307 debugborder_in->SetAll(shared_state1_in, |
321 arbitrary_rect3, | 308 arbitrary_rect3, |
322 arbitrary_rect1_inside_rect3, | 309 arbitrary_rect1_inside_rect3, |
323 arbitrary_rect2_inside_rect3, | 310 arbitrary_rect2_inside_rect3, |
324 arbitrary_bool1, | 311 arbitrary_bool1, |
325 arbitrary_color, | 312 arbitrary_color, |
326 arbitrary_int); | 313 arbitrary_int); |
327 pass_cmp->CopyFromAndAppendDrawQuad(debugborder_in, | 314 pass_cmp->CopyFromAndAppendDrawQuad(debugborder_in, |
328 debugborder_in->shared_quad_state); | 315 debugborder_in->shared_quad_state); |
329 | 316 |
330 IOSurfaceDrawQuad* iosurface_in = | |
331 pass_in->CreateAndAppendDrawQuad<IOSurfaceDrawQuad>(); | |
332 iosurface_in->SetAll(shared_state1_in, | |
333 arbitrary_rect2, | |
334 arbitrary_rect2_inside_rect2, | |
335 arbitrary_rect1_inside_rect2, | |
336 arbitrary_bool1, | |
337 arbitrary_size1, | |
338 arbitrary_resourceid3, | |
339 arbitrary_orientation); | |
340 pass_cmp->CopyFromAndAppendDrawQuad(iosurface_in, | |
341 iosurface_in->shared_quad_state); | |
342 | |
343 SharedQuadState* shared_state2_in = pass_in->CreateAndAppendSharedQuadState(); | 317 SharedQuadState* shared_state2_in = pass_in->CreateAndAppendSharedQuadState(); |
344 shared_state2_in->SetAll(arbitrary_matrix2, arbitrary_size2, arbitrary_rect2, | 318 shared_state2_in->SetAll(arbitrary_matrix2, arbitrary_size2, arbitrary_rect2, |
345 arbitrary_rect3, arbitrary_bool1, arbitrary_float2, | 319 arbitrary_rect3, arbitrary_bool1, arbitrary_float2, |
346 arbitrary_blend_mode2, arbitrary_context_id2); | 320 arbitrary_blend_mode2, arbitrary_context_id2); |
347 SharedQuadState* shared_state2_cmp = | 321 SharedQuadState* shared_state2_cmp = |
348 pass_cmp->CreateAndAppendSharedQuadState(); | 322 pass_cmp->CreateAndAppendSharedQuadState(); |
349 shared_state2_cmp->CopyFrom(shared_state2_in); | 323 shared_state2_cmp->CopyFrom(shared_state2_in); |
350 | 324 |
351 RenderPassDrawQuad* renderpass_in = | 325 RenderPassDrawQuad* renderpass_in = |
352 pass_in->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 326 pass_in->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
435 arbitrary_color_space, arbitrary_float1, arbitrary_float2); | 409 arbitrary_color_space, arbitrary_float1, arbitrary_float2); |
436 pass_cmp->CopyFromAndAppendDrawQuad(yuvvideo_in, | 410 pass_cmp->CopyFromAndAppendDrawQuad(yuvvideo_in, |
437 yuvvideo_in->shared_quad_state); | 411 yuvvideo_in->shared_quad_state); |
438 | 412 |
439 // Make sure the in and cmp RenderPasses match. | 413 // Make sure the in and cmp RenderPasses match. |
440 Compare(child_pass_cmp.get(), child_pass_in.get()); | 414 Compare(child_pass_cmp.get(), child_pass_in.get()); |
441 ASSERT_EQ(0u, child_pass_in->shared_quad_state_list.size()); | 415 ASSERT_EQ(0u, child_pass_in->shared_quad_state_list.size()); |
442 ASSERT_EQ(0u, child_pass_in->quad_list.size()); | 416 ASSERT_EQ(0u, child_pass_in->quad_list.size()); |
443 Compare(pass_cmp.get(), pass_in.get()); | 417 Compare(pass_cmp.get(), pass_in.get()); |
444 ASSERT_EQ(3u, pass_in->shared_quad_state_list.size()); | 418 ASSERT_EQ(3u, pass_in->shared_quad_state_list.size()); |
445 ASSERT_EQ(9u, pass_in->quad_list.size()); | 419 ASSERT_EQ(8u, pass_in->quad_list.size()); |
446 for (cc::SharedQuadStateList::ConstIterator | 420 for (cc::SharedQuadStateList::ConstIterator |
447 cmp_iterator = pass_cmp->shared_quad_state_list.begin(), | 421 cmp_iterator = pass_cmp->shared_quad_state_list.begin(), |
448 in_iterator = pass_in->shared_quad_state_list.begin(); | 422 in_iterator = pass_in->shared_quad_state_list.begin(); |
449 in_iterator != pass_in->shared_quad_state_list.end(); | 423 in_iterator != pass_in->shared_quad_state_list.end(); |
450 ++cmp_iterator, ++in_iterator) { | 424 ++cmp_iterator, ++in_iterator) { |
451 Compare(*cmp_iterator, *in_iterator); | 425 Compare(*cmp_iterator, *in_iterator); |
452 } | 426 } |
453 for (auto in_iter = pass_in->quad_list.cbegin(), | 427 for (auto in_iter = pass_in->quad_list.cbegin(), |
454 cmp_iter = pass_cmp->quad_list.cbegin(); | 428 cmp_iter = pass_cmp->quad_list.cbegin(); |
455 in_iter != pass_in->quad_list.cend(); | 429 in_iter != pass_in->quad_list.cend(); |
(...skipping 24 matching lines...) Expand all Loading... | |
480 // Make sure the out and cmp RenderPasses match. | 454 // Make sure the out and cmp RenderPasses match. |
481 std::unique_ptr<RenderPass> child_pass_out = | 455 std::unique_ptr<RenderPass> child_pass_out = |
482 std::move(frame_out.render_pass_list[0]); | 456 std::move(frame_out.render_pass_list[0]); |
483 Compare(child_pass_cmp.get(), child_pass_out.get()); | 457 Compare(child_pass_cmp.get(), child_pass_out.get()); |
484 ASSERT_EQ(0u, child_pass_out->shared_quad_state_list.size()); | 458 ASSERT_EQ(0u, child_pass_out->shared_quad_state_list.size()); |
485 ASSERT_EQ(0u, child_pass_out->quad_list.size()); | 459 ASSERT_EQ(0u, child_pass_out->quad_list.size()); |
486 std::unique_ptr<RenderPass> pass_out = | 460 std::unique_ptr<RenderPass> pass_out = |
487 std::move(frame_out.render_pass_list[1]); | 461 std::move(frame_out.render_pass_list[1]); |
488 Compare(pass_cmp.get(), pass_out.get()); | 462 Compare(pass_cmp.get(), pass_out.get()); |
489 ASSERT_EQ(3u, pass_out->shared_quad_state_list.size()); | 463 ASSERT_EQ(3u, pass_out->shared_quad_state_list.size()); |
490 ASSERT_EQ(9u, pass_out->quad_list.size()); | 464 ASSERT_EQ(8u, pass_out->quad_list.size()); |
491 for (cc::SharedQuadStateList::ConstIterator | 465 for (cc::SharedQuadStateList::ConstIterator |
492 cmp_iterator = pass_cmp->shared_quad_state_list.begin(), | 466 cmp_iterator = pass_cmp->shared_quad_state_list.begin(), |
493 out_iterator = pass_out->shared_quad_state_list.begin(); | 467 out_iterator = pass_out->shared_quad_state_list.begin(); |
494 out_iterator != pass_out->shared_quad_state_list.end(); | 468 out_iterator != pass_out->shared_quad_state_list.end(); |
495 ++cmp_iterator, ++out_iterator) { | 469 ++cmp_iterator, ++out_iterator) { |
496 Compare(*cmp_iterator, *out_iterator); | 470 Compare(*cmp_iterator, *out_iterator); |
497 } | 471 } |
498 for (auto out_iter = pass_out->quad_list.cbegin(), | 472 for (auto out_iter = pass_out->quad_list.cbegin(), |
499 cmp_iter = pass_cmp->quad_list.cbegin(); | 473 cmp_iter = pass_cmp->quad_list.cbegin(); |
500 out_iter != pass_out->quad_list.cend(); | 474 out_iter != pass_out->quad_list.cend(); |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
673 EXPECT_TRUE(IPC::ParamTraits<DelegatedFrameData>::Read(&msg, | 647 EXPECT_TRUE(IPC::ParamTraits<DelegatedFrameData>::Read(&msg, |
674 &iter, &frame_out)); | 648 &iter, &frame_out)); |
675 | 649 |
676 ASSERT_EQ(2u, frame_out.resource_list.size()); | 650 ASSERT_EQ(2u, frame_out.resource_list.size()); |
677 Compare(arbitrary_resource1, frame_out.resource_list[0]); | 651 Compare(arbitrary_resource1, frame_out.resource_list[0]); |
678 Compare(arbitrary_resource2, frame_out.resource_list[1]); | 652 Compare(arbitrary_resource2, frame_out.resource_list[1]); |
679 } | 653 } |
680 | 654 |
681 } // namespace | 655 } // namespace |
682 } // namespace content | 656 } // namespace content |
OLD | NEW |