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 "content/common/cc_messages.h" | 5 #include "content/common/cc_messages.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 } | 56 } |
57 | 57 |
58 void Compare(const SharedQuadState* a, const SharedQuadState* b) { | 58 void Compare(const SharedQuadState* a, const SharedQuadState* b) { |
59 EXPECT_EQ(a->content_to_target_transform, b->content_to_target_transform); | 59 EXPECT_EQ(a->content_to_target_transform, b->content_to_target_transform); |
60 EXPECT_EQ(a->content_bounds, b->content_bounds); | 60 EXPECT_EQ(a->content_bounds, b->content_bounds); |
61 EXPECT_EQ(a->visible_content_rect, b->visible_content_rect); | 61 EXPECT_EQ(a->visible_content_rect, b->visible_content_rect); |
62 EXPECT_EQ(a->clip_rect, b->clip_rect); | 62 EXPECT_EQ(a->clip_rect, b->clip_rect); |
63 EXPECT_EQ(a->is_clipped, b->is_clipped); | 63 EXPECT_EQ(a->is_clipped, b->is_clipped); |
64 EXPECT_EQ(a->opacity, b->opacity); | 64 EXPECT_EQ(a->opacity, b->opacity); |
65 EXPECT_EQ(a->blend_mode, b->blend_mode); | 65 EXPECT_EQ(a->blend_mode, b->blend_mode); |
| 66 EXPECT_EQ(a->sorting_context_id, b->sorting_context_id); |
66 } | 67 } |
67 | 68 |
68 void Compare(const DrawQuad* a, const DrawQuad* b) { | 69 void Compare(const DrawQuad* a, const DrawQuad* b) { |
69 ASSERT_NE(DrawQuad::INVALID, a->material); | 70 ASSERT_NE(DrawQuad::INVALID, a->material); |
70 ASSERT_EQ(a->material, b->material); | 71 ASSERT_EQ(a->material, b->material); |
71 EXPECT_EQ(a->rect.ToString(), b->rect.ToString()); | 72 EXPECT_EQ(a->rect.ToString(), b->rect.ToString()); |
72 EXPECT_EQ(a->opaque_rect.ToString(), b->opaque_rect.ToString()); | 73 EXPECT_EQ(a->opaque_rect.ToString(), b->opaque_rect.ToString()); |
73 EXPECT_EQ(a->visible_rect.ToString(), b->visible_rect.ToString()); | 74 EXPECT_EQ(a->visible_rect.ToString(), b->visible_rect.ToString()); |
74 EXPECT_EQ(a->needs_blending, b->needs_blending); | 75 EXPECT_EQ(a->needs_blending, b->needs_blending); |
75 | 76 |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 gfx::SizeF arbitrary_sizef1(15.2f, 104.6f); | 241 gfx::SizeF arbitrary_sizef1(15.2f, 104.6f); |
241 gfx::PointF arbitrary_pointf1(31.4f, 15.9f); | 242 gfx::PointF arbitrary_pointf1(31.4f, 15.9f); |
242 gfx::PointF arbitrary_pointf2(26.5f, -35.8f); | 243 gfx::PointF arbitrary_pointf2(26.5f, -35.8f); |
243 float arbitrary_float1 = 0.7f; | 244 float arbitrary_float1 = 0.7f; |
244 float arbitrary_float2 = 0.3f; | 245 float arbitrary_float2 = 0.3f; |
245 float arbitrary_float3 = 0.9f; | 246 float arbitrary_float3 = 0.9f; |
246 float arbitrary_float_array[4] = {3.5f, 6.2f, 9.3f, 12.3f}; | 247 float arbitrary_float_array[4] = {3.5f, 6.2f, 9.3f, 12.3f}; |
247 bool arbitrary_bool1 = true; | 248 bool arbitrary_bool1 = true; |
248 bool arbitrary_bool2 = false; | 249 bool arbitrary_bool2 = false; |
249 bool arbitrary_bool3 = true; | 250 bool arbitrary_bool3 = true; |
| 251 int arbitrary_context_id1 = 12; |
| 252 int arbitrary_context_id2 = 57; |
| 253 int arbitrary_context_id3 = -503; |
250 int arbitrary_int = 5; | 254 int arbitrary_int = 5; |
251 SkColor arbitrary_color = SkColorSetARGB(25, 36, 47, 58); | 255 SkColor arbitrary_color = SkColorSetARGB(25, 36, 47, 58); |
252 SkXfermode::Mode arbitrary_blend_mode1 = SkXfermode::kScreen_Mode; | 256 SkXfermode::Mode arbitrary_blend_mode1 = SkXfermode::kScreen_Mode; |
253 SkXfermode::Mode arbitrary_blend_mode2 = SkXfermode::kLighten_Mode; | 257 SkXfermode::Mode arbitrary_blend_mode2 = SkXfermode::kLighten_Mode; |
254 SkXfermode::Mode arbitrary_blend_mode3 = SkXfermode::kOverlay_Mode; | 258 SkXfermode::Mode arbitrary_blend_mode3 = SkXfermode::kOverlay_Mode; |
255 IOSurfaceDrawQuad::Orientation arbitrary_orientation = | 259 IOSurfaceDrawQuad::Orientation arbitrary_orientation = |
256 IOSurfaceDrawQuad::UNFLIPPED; | 260 IOSurfaceDrawQuad::UNFLIPPED; |
257 RenderPass::Id arbitrary_id(10, 14); | 261 RenderPass::Id arbitrary_id(10, 14); |
258 ResourceProvider::ResourceId arbitrary_resourceid1 = 55; | 262 ResourceProvider::ResourceId arbitrary_resourceid1 = 55; |
259 ResourceProvider::ResourceId arbitrary_resourceid2 = 47; | 263 ResourceProvider::ResourceId arbitrary_resourceid2 = 47; |
(...skipping 22 matching lines...) Expand all Loading... |
282 arbitrary_matrix, | 286 arbitrary_matrix, |
283 arbitrary_bool1); | 287 arbitrary_bool1); |
284 | 288 |
285 SharedQuadState* shared_state1_in = pass_in->CreateAndAppendSharedQuadState(); | 289 SharedQuadState* shared_state1_in = pass_in->CreateAndAppendSharedQuadState(); |
286 shared_state1_in->SetAll(arbitrary_matrix, | 290 shared_state1_in->SetAll(arbitrary_matrix, |
287 arbitrary_size1, | 291 arbitrary_size1, |
288 arbitrary_rect1, | 292 arbitrary_rect1, |
289 arbitrary_rect2, | 293 arbitrary_rect2, |
290 arbitrary_bool1, | 294 arbitrary_bool1, |
291 arbitrary_float1, | 295 arbitrary_float1, |
292 arbitrary_blend_mode1); | 296 arbitrary_blend_mode1, |
| 297 arbitrary_context_id1); |
293 | 298 |
294 scoped_ptr<RenderPass> pass_cmp = RenderPass::Create(); | 299 scoped_ptr<RenderPass> pass_cmp = RenderPass::Create(); |
295 pass_cmp->SetAll(arbitrary_id, | 300 pass_cmp->SetAll(arbitrary_id, |
296 arbitrary_rect1, | 301 arbitrary_rect1, |
297 arbitrary_rect2, | 302 arbitrary_rect2, |
298 arbitrary_matrix, | 303 arbitrary_matrix, |
299 arbitrary_bool1); | 304 arbitrary_bool1); |
300 | 305 |
301 SharedQuadState* shared_state1_cmp = | 306 SharedQuadState* shared_state1_cmp = |
302 pass_cmp->CreateAndAppendSharedQuadState(); | 307 pass_cmp->CreateAndAppendSharedQuadState(); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 scoped_ptr<DrawQuad> iosurface_cmp = iosurface_in->Copy( | 343 scoped_ptr<DrawQuad> iosurface_cmp = iosurface_in->Copy( |
339 iosurface_in->shared_quad_state); | 344 iosurface_in->shared_quad_state); |
340 | 345 |
341 SharedQuadState* shared_state2_in = pass_in->CreateAndAppendSharedQuadState(); | 346 SharedQuadState* shared_state2_in = pass_in->CreateAndAppendSharedQuadState(); |
342 shared_state2_in->SetAll(arbitrary_matrix, | 347 shared_state2_in->SetAll(arbitrary_matrix, |
343 arbitrary_size2, | 348 arbitrary_size2, |
344 arbitrary_rect2, | 349 arbitrary_rect2, |
345 arbitrary_rect3, | 350 arbitrary_rect3, |
346 arbitrary_bool1, | 351 arbitrary_bool1, |
347 arbitrary_float2, | 352 arbitrary_float2, |
348 arbitrary_blend_mode2); | 353 arbitrary_blend_mode2, |
| 354 arbitrary_context_id2); |
349 SharedQuadState* shared_state2_cmp = | 355 SharedQuadState* shared_state2_cmp = |
350 pass_cmp->CreateAndAppendSharedQuadState(); | 356 pass_cmp->CreateAndAppendSharedQuadState(); |
351 shared_state2_cmp->CopyFrom(shared_state2_in); | 357 shared_state2_cmp->CopyFrom(shared_state2_in); |
352 | 358 |
353 scoped_ptr<RenderPassDrawQuad> renderpass_in = | 359 scoped_ptr<RenderPassDrawQuad> renderpass_in = |
354 RenderPassDrawQuad::Create(); | 360 RenderPassDrawQuad::Create(); |
355 renderpass_in->SetAll(shared_state2_in, | 361 renderpass_in->SetAll(shared_state2_in, |
356 arbitrary_rect1, | 362 arbitrary_rect1, |
357 arbitrary_rect2_inside_rect1, | 363 arbitrary_rect2_inside_rect1, |
358 arbitrary_rect1_inside_rect1, | 364 arbitrary_rect1_inside_rect1, |
359 arbitrary_bool1, | 365 arbitrary_bool1, |
360 arbitrary_id, | 366 arbitrary_id, |
361 arbitrary_bool2, | 367 arbitrary_bool2, |
362 arbitrary_resourceid2, | 368 arbitrary_resourceid2, |
363 arbitrary_rect1, | 369 arbitrary_rect1, |
364 arbitrary_rectf1, | 370 arbitrary_rectf1, |
365 arbitrary_filters1, | 371 arbitrary_filters1, |
366 arbitrary_filters2); | 372 arbitrary_filters2); |
367 scoped_ptr<RenderPassDrawQuad> renderpass_cmp = renderpass_in->Copy( | 373 scoped_ptr<RenderPassDrawQuad> renderpass_cmp = renderpass_in->Copy( |
368 renderpass_in->shared_quad_state, renderpass_in->render_pass_id); | 374 renderpass_in->shared_quad_state, renderpass_in->render_pass_id); |
369 | 375 |
370 SharedQuadState* shared_state3_in = pass_in->CreateAndAppendSharedQuadState(); | 376 SharedQuadState* shared_state3_in = pass_in->CreateAndAppendSharedQuadState(); |
371 shared_state3_in->SetAll(arbitrary_matrix, | 377 shared_state3_in->SetAll(arbitrary_matrix, |
372 arbitrary_size3, | 378 arbitrary_size3, |
373 arbitrary_rect3, | 379 arbitrary_rect3, |
374 arbitrary_rect1, | 380 arbitrary_rect1, |
375 arbitrary_bool1, | 381 arbitrary_bool1, |
376 arbitrary_float3, | 382 arbitrary_float3, |
377 arbitrary_blend_mode3); | 383 arbitrary_blend_mode3, |
| 384 arbitrary_context_id3); |
378 SharedQuadState* shared_state3_cmp = | 385 SharedQuadState* shared_state3_cmp = |
379 pass_cmp->CreateAndAppendSharedQuadState(); | 386 pass_cmp->CreateAndAppendSharedQuadState(); |
380 shared_state3_cmp->CopyFrom(shared_state3_in); | 387 shared_state3_cmp->CopyFrom(shared_state3_in); |
381 | 388 |
382 scoped_ptr<SolidColorDrawQuad> solidcolor_in = | 389 scoped_ptr<SolidColorDrawQuad> solidcolor_in = |
383 SolidColorDrawQuad::Create(); | 390 SolidColorDrawQuad::Create(); |
384 solidcolor_in->SetAll(shared_state3_in, | 391 solidcolor_in->SetAll(shared_state3_in, |
385 arbitrary_rect3, | 392 arbitrary_rect3, |
386 arbitrary_rect1_inside_rect3, | 393 arbitrary_rect1_inside_rect3, |
387 arbitrary_rect2_inside_rect3, | 394 arbitrary_rect2_inside_rect3, |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 false); | 553 false); |
547 | 554 |
548 // The first SharedQuadState is used. | 555 // The first SharedQuadState is used. |
549 SharedQuadState* shared_state1_in = pass_in->CreateAndAppendSharedQuadState(); | 556 SharedQuadState* shared_state1_in = pass_in->CreateAndAppendSharedQuadState(); |
550 shared_state1_in->SetAll(gfx::Transform(), | 557 shared_state1_in->SetAll(gfx::Transform(), |
551 gfx::Size(1, 1), | 558 gfx::Size(1, 1), |
552 gfx::Rect(), | 559 gfx::Rect(), |
553 gfx::Rect(), | 560 gfx::Rect(), |
554 false, | 561 false, |
555 1.f, | 562 1.f, |
556 SkXfermode::kSrcOver_Mode); | 563 SkXfermode::kSrcOver_Mode, |
| 564 0); |
557 | 565 |
558 quad = CheckerboardDrawQuad::Create(); | 566 quad = CheckerboardDrawQuad::Create(); |
559 quad->SetAll(shared_state1_in, | 567 quad->SetAll(shared_state1_in, |
560 gfx::Rect(10, 10), | 568 gfx::Rect(10, 10), |
561 gfx::Rect(10, 10), | 569 gfx::Rect(10, 10), |
562 gfx::Rect(10, 10), | 570 gfx::Rect(10, 10), |
563 false, | 571 false, |
564 SK_ColorRED); | 572 SK_ColorRED); |
565 pass_in->quad_list.push_back(quad.PassAs<DrawQuad>()); | 573 pass_in->quad_list.push_back(quad.PassAs<DrawQuad>()); |
566 | 574 |
567 // The second and third SharedQuadStates are not used. | 575 // The second and third SharedQuadStates are not used. |
568 SharedQuadState* shared_state2_in = pass_in->CreateAndAppendSharedQuadState(); | 576 SharedQuadState* shared_state2_in = pass_in->CreateAndAppendSharedQuadState(); |
569 shared_state2_in->SetAll(gfx::Transform(), | 577 shared_state2_in->SetAll(gfx::Transform(), |
570 gfx::Size(2, 2), | 578 gfx::Size(2, 2), |
571 gfx::Rect(), | 579 gfx::Rect(), |
572 gfx::Rect(), | 580 gfx::Rect(), |
573 false, | 581 false, |
574 1.f, | 582 1.f, |
575 SkXfermode::kSrcOver_Mode); | 583 SkXfermode::kSrcOver_Mode, |
| 584 0); |
576 | 585 |
577 SharedQuadState* shared_state3_in = pass_in->CreateAndAppendSharedQuadState(); | 586 SharedQuadState* shared_state3_in = pass_in->CreateAndAppendSharedQuadState(); |
578 shared_state3_in->SetAll(gfx::Transform(), | 587 shared_state3_in->SetAll(gfx::Transform(), |
579 gfx::Size(3, 3), | 588 gfx::Size(3, 3), |
580 gfx::Rect(), | 589 gfx::Rect(), |
581 gfx::Rect(), | 590 gfx::Rect(), |
582 false, | 591 false, |
583 1.f, | 592 1.f, |
584 SkXfermode::kSrcOver_Mode); | 593 SkXfermode::kSrcOver_Mode, |
| 594 0); |
585 | 595 |
586 // The fourth SharedQuadState is used. | 596 // The fourth SharedQuadState is used. |
587 SharedQuadState* shared_state4_in = pass_in->CreateAndAppendSharedQuadState(); | 597 SharedQuadState* shared_state4_in = pass_in->CreateAndAppendSharedQuadState(); |
588 shared_state4_in->SetAll(gfx::Transform(), | 598 shared_state4_in->SetAll(gfx::Transform(), |
589 gfx::Size(4, 4), | 599 gfx::Size(4, 4), |
590 gfx::Rect(), | 600 gfx::Rect(), |
591 gfx::Rect(), | 601 gfx::Rect(), |
592 false, | 602 false, |
593 1.f, | 603 1.f, |
594 SkXfermode::kSrcOver_Mode); | 604 SkXfermode::kSrcOver_Mode, |
| 605 0); |
595 | 606 |
596 quad = CheckerboardDrawQuad::Create(); | 607 quad = CheckerboardDrawQuad::Create(); |
597 quad->SetAll(shared_state4_in, | 608 quad->SetAll(shared_state4_in, |
598 gfx::Rect(10, 10), | 609 gfx::Rect(10, 10), |
599 gfx::Rect(10, 10), | 610 gfx::Rect(10, 10), |
600 gfx::Rect(10, 10), | 611 gfx::Rect(10, 10), |
601 false, | 612 false, |
602 SK_ColorRED); | 613 SK_ColorRED); |
603 pass_in->quad_list.push_back(quad.PassAs<DrawQuad>()); | 614 pass_in->quad_list.push_back(quad.PassAs<DrawQuad>()); |
604 | 615 |
605 // The fifth is not used again. | 616 // The fifth is not used again. |
606 SharedQuadState* shared_state5_in = pass_in->CreateAndAppendSharedQuadState(); | 617 SharedQuadState* shared_state5_in = pass_in->CreateAndAppendSharedQuadState(); |
607 shared_state5_in->SetAll(gfx::Transform(), | 618 shared_state5_in->SetAll(gfx::Transform(), |
608 gfx::Size(5, 5), | 619 gfx::Size(5, 5), |
609 gfx::Rect(), | 620 gfx::Rect(), |
610 gfx::Rect(), | 621 gfx::Rect(), |
611 false, | 622 false, |
612 1.f, | 623 1.f, |
613 SkXfermode::kSrcOver_Mode); | 624 SkXfermode::kSrcOver_Mode, |
| 625 0); |
614 | 626 |
615 // 5 SharedQuadStates go in. | 627 // 5 SharedQuadStates go in. |
616 ASSERT_EQ(5u, pass_in->shared_quad_state_list.size()); | 628 ASSERT_EQ(5u, pass_in->shared_quad_state_list.size()); |
617 ASSERT_EQ(2u, pass_in->quad_list.size()); | 629 ASSERT_EQ(2u, pass_in->quad_list.size()); |
618 | 630 |
619 DelegatedFrameData frame_in; | 631 DelegatedFrameData frame_in; |
620 frame_in.render_pass_list.push_back(pass_in.Pass()); | 632 frame_in.render_pass_list.push_back(pass_in.Pass()); |
621 | 633 |
622 IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL); | 634 IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL); |
623 IPC::ParamTraits<DelegatedFrameData>::Write(&msg, frame_in); | 635 IPC::ParamTraits<DelegatedFrameData>::Write(&msg, frame_in); |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
808 SoftwareFrameData frame_out; | 820 SoftwareFrameData frame_out; |
809 PickleIterator iter(msg); | 821 PickleIterator iter(msg); |
810 EXPECT_EQ( | 822 EXPECT_EQ( |
811 expect_read, | 823 expect_read, |
812 IPC::ParamTraits<SoftwareFrameData>::Read(&msg, &iter, &frame_out)); | 824 IPC::ParamTraits<SoftwareFrameData>::Read(&msg, &iter, &frame_out)); |
813 } | 825 } |
814 } | 826 } |
815 | 827 |
816 } // namespace | 828 } // namespace |
817 } // namespace content | 829 } // namespace content |
OLD | NEW |