| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/input/selection.h" | 6 #include "cc/input/selection.h" |
| 7 #include "cc/ipc/traits_test_service.mojom.h" | 7 #include "cc/ipc/traits_test_service.mojom.h" |
| 8 #include "cc/quads/debug_border_draw_quad.h" | 8 #include "cc/quads/debug_border_draw_quad.h" |
| 9 #include "cc/quads/render_pass.h" | 9 #include "cc/quads/render_pass.h" |
| 10 #include "cc/quads/render_pass_draw_quad.h" | 10 #include "cc/quads/render_pass_draw_quad.h" |
| (...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 LocalFrameId(5678, base::UnguessableToken::Create())); | 439 LocalFrameId(5678, base::UnguessableToken::Create())); |
| 440 SurfaceDrawQuad* surface_quad = | 440 SurfaceDrawQuad* surface_quad = |
| 441 render_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); | 441 render_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); |
| 442 surface_quad->SetNew(sqs, rect3, rect3, surface_id); | 442 surface_quad->SetNew(sqs, rect3, rect3, surface_id); |
| 443 | 443 |
| 444 const gfx::Rect rect4(1234, 5678, 9101112, 13141516); | 444 const gfx::Rect rect4(1234, 5678, 9101112, 13141516); |
| 445 const ResourceId resource_id4(1337); | 445 const ResourceId resource_id4(1337); |
| 446 const int render_pass_id = 1234; | 446 const int render_pass_id = 1234; |
| 447 const gfx::Vector2dF mask_uv_scale(1337.1f, 1234.2f); | 447 const gfx::Vector2dF mask_uv_scale(1337.1f, 1234.2f); |
| 448 const gfx::Size mask_texture_size(1234, 5678); | 448 const gfx::Size mask_texture_size(1234, 5678); |
| 449 FilterOperations filters; | |
| 450 filters.Append(FilterOperation::CreateBlurFilter(0.f)); | |
| 451 filters.Append(FilterOperation::CreateZoomFilter(2.0f, 1)); | |
| 452 gfx::Vector2dF filters_scale(1234.1f, 4321.2f); | 449 gfx::Vector2dF filters_scale(1234.1f, 4321.2f); |
| 453 gfx::PointF filters_origin(8765.4f, 4567.8f); | 450 gfx::PointF filters_origin(8765.4f, 4567.8f); |
| 454 FilterOperations background_filters; | |
| 455 background_filters.Append(FilterOperation::CreateSaturateFilter(4.f)); | |
| 456 background_filters.Append(FilterOperation::CreateZoomFilter(2.0f, 1)); | |
| 457 background_filters.Append(FilterOperation::CreateSaturateFilter(2.f)); | |
| 458 | 451 |
| 459 RenderPassDrawQuad* render_pass_quad = | 452 RenderPassDrawQuad* render_pass_quad = |
| 460 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 453 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 461 render_pass_quad->SetNew(sqs, rect4, rect4, render_pass_id, resource_id4, | 454 render_pass_quad->SetNew(sqs, rect4, rect4, render_pass_id, resource_id4, |
| 462 mask_uv_scale, mask_texture_size, filters, | 455 mask_uv_scale, mask_texture_size, filters_scale, |
| 463 filters_scale, filters_origin, background_filters); | 456 filters_origin); |
| 464 | 457 |
| 465 const gfx::Rect rect5(123, 567, 91011, 131415); | 458 const gfx::Rect rect5(123, 567, 91011, 131415); |
| 466 const ResourceId resource_id5(1337); | 459 const ResourceId resource_id5(1337); |
| 467 const float vertex_opacity[4] = {1.f, 2.f, 3.f, 4.f}; | 460 const float vertex_opacity[4] = {1.f, 2.f, 3.f, 4.f}; |
| 468 const bool premultiplied_alpha = true; | 461 const bool premultiplied_alpha = true; |
| 469 const gfx::PointF uv_top_left(12.1f, 34.2f); | 462 const gfx::PointF uv_top_left(12.1f, 34.2f); |
| 470 const gfx::PointF uv_bottom_right(56.3f, 78.4f); | 463 const gfx::PointF uv_bottom_right(56.3f, 78.4f); |
| 471 const SkColor background_color = SK_ColorGREEN; | 464 const SkColor background_color = SK_ColorGREEN; |
| 472 const bool y_flipped = true; | 465 const bool y_flipped = true; |
| 473 const bool nearest_neighbor = true; | 466 const bool nearest_neighbor = true; |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 EXPECT_EQ(rect3, out_surface_draw_quad->visible_rect); | 513 EXPECT_EQ(rect3, out_surface_draw_quad->visible_rect); |
| 521 EXPECT_EQ(surface_id, out_surface_draw_quad->surface_id); | 514 EXPECT_EQ(surface_id, out_surface_draw_quad->surface_id); |
| 522 | 515 |
| 523 const RenderPassDrawQuad* out_render_pass_draw_quad = | 516 const RenderPassDrawQuad* out_render_pass_draw_quad = |
| 524 RenderPassDrawQuad::MaterialCast(output->quad_list.ElementAt(3)); | 517 RenderPassDrawQuad::MaterialCast(output->quad_list.ElementAt(3)); |
| 525 EXPECT_EQ(rect4, out_render_pass_draw_quad->rect); | 518 EXPECT_EQ(rect4, out_render_pass_draw_quad->rect); |
| 526 EXPECT_EQ(rect4, out_render_pass_draw_quad->visible_rect); | 519 EXPECT_EQ(rect4, out_render_pass_draw_quad->visible_rect); |
| 527 EXPECT_EQ(render_pass_id, out_render_pass_draw_quad->render_pass_id); | 520 EXPECT_EQ(render_pass_id, out_render_pass_draw_quad->render_pass_id); |
| 528 EXPECT_EQ(resource_id4, out_render_pass_draw_quad->mask_resource_id()); | 521 EXPECT_EQ(resource_id4, out_render_pass_draw_quad->mask_resource_id()); |
| 529 EXPECT_EQ(mask_texture_size, out_render_pass_draw_quad->mask_texture_size); | 522 EXPECT_EQ(mask_texture_size, out_render_pass_draw_quad->mask_texture_size); |
| 530 EXPECT_EQ(filters.size(), out_render_pass_draw_quad->filters.size()); | |
| 531 for (size_t i = 0; i < filters.size(); ++i) | |
| 532 EXPECT_EQ(filters.at(i), out_render_pass_draw_quad->filters.at(i)); | |
| 533 EXPECT_EQ(filters_scale, out_render_pass_draw_quad->filters_scale); | 523 EXPECT_EQ(filters_scale, out_render_pass_draw_quad->filters_scale); |
| 534 EXPECT_EQ(background_filters.size(), | |
| 535 out_render_pass_draw_quad->background_filters.size()); | |
| 536 for (size_t i = 0; i < background_filters.size(); ++i) | |
| 537 EXPECT_EQ(background_filters.at(i), | |
| 538 out_render_pass_draw_quad->background_filters.at(i)); | |
| 539 | 524 |
| 540 const TextureDrawQuad* out_texture_draw_quad = | 525 const TextureDrawQuad* out_texture_draw_quad = |
| 541 TextureDrawQuad::MaterialCast(output->quad_list.ElementAt(4)); | 526 TextureDrawQuad::MaterialCast(output->quad_list.ElementAt(4)); |
| 542 EXPECT_EQ(rect5, out_texture_draw_quad->rect); | 527 EXPECT_EQ(rect5, out_texture_draw_quad->rect); |
| 543 EXPECT_EQ(rect5, out_texture_draw_quad->opaque_rect); | 528 EXPECT_EQ(rect5, out_texture_draw_quad->opaque_rect); |
| 544 EXPECT_EQ(rect5, out_texture_draw_quad->visible_rect); | 529 EXPECT_EQ(rect5, out_texture_draw_quad->visible_rect); |
| 545 EXPECT_EQ(needs_blending, out_texture_draw_quad->needs_blending); | 530 EXPECT_EQ(needs_blending, out_texture_draw_quad->needs_blending); |
| 546 EXPECT_EQ(resource_id5, out_texture_draw_quad->resource_id()); | 531 EXPECT_EQ(resource_id5, out_texture_draw_quad->resource_id()); |
| 547 EXPECT_EQ(resource_size_in_pixels5, | 532 EXPECT_EQ(resource_size_in_pixels5, |
| 548 out_texture_draw_quad->resource_size_in_pixels()); | 533 out_texture_draw_quad->resource_size_in_pixels()); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 568 out_stream_video_draw_quad->resource_size_in_pixels()); | 553 out_stream_video_draw_quad->resource_size_in_pixels()); |
| 569 EXPECT_EQ(matrix, out_stream_video_draw_quad->matrix); | 554 EXPECT_EQ(matrix, out_stream_video_draw_quad->matrix); |
| 570 } | 555 } |
| 571 | 556 |
| 572 TEST_F(StructTraitsTest, RenderPass) { | 557 TEST_F(StructTraitsTest, RenderPass) { |
| 573 const int id = 3; | 558 const int id = 3; |
| 574 const gfx::Rect output_rect(45, 22, 120, 13); | 559 const gfx::Rect output_rect(45, 22, 120, 13); |
| 575 const gfx::Transform transform_to_root = | 560 const gfx::Transform transform_to_root = |
| 576 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); | 561 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); |
| 577 const gfx::Rect damage_rect(56, 123, 19, 43); | 562 const gfx::Rect damage_rect(56, 123, 19, 43); |
| 563 FilterOperations filters; |
| 564 filters.Append(FilterOperation::CreateBlurFilter(0.f)); |
| 565 filters.Append(FilterOperation::CreateZoomFilter(2.0f, 1)); |
| 566 FilterOperations background_filters; |
| 567 background_filters.Append(FilterOperation::CreateSaturateFilter(4.f)); |
| 568 background_filters.Append(FilterOperation::CreateZoomFilter(2.0f, 1)); |
| 569 background_filters.Append(FilterOperation::CreateSaturateFilter(2.f)); |
| 578 const bool has_transparent_background = true; | 570 const bool has_transparent_background = true; |
| 579 std::unique_ptr<RenderPass> input = RenderPass::Create(); | 571 std::unique_ptr<RenderPass> input = RenderPass::Create(); |
| 580 input->SetAll(id, output_rect, damage_rect, transform_to_root, | 572 input->SetAll(id, output_rect, damage_rect, transform_to_root, filters, |
| 581 has_transparent_background); | 573 background_filters, has_transparent_background); |
| 582 | 574 |
| 583 SharedQuadState* shared_state_1 = input->CreateAndAppendSharedQuadState(); | 575 SharedQuadState* shared_state_1 = input->CreateAndAppendSharedQuadState(); |
| 584 shared_state_1->SetAll( | 576 shared_state_1->SetAll( |
| 585 gfx::Transform(16.1f, 15.3f, 14.3f, 13.7f, 12.2f, 11.4f, 10.4f, 9.8f, | 577 gfx::Transform(16.1f, 15.3f, 14.3f, 13.7f, 12.2f, 11.4f, 10.4f, 9.8f, |
| 586 8.1f, 7.3f, 6.3f, 5.7f, 4.8f, 3.4f, 2.4f, 1.2f), | 578 8.1f, 7.3f, 6.3f, 5.7f, 4.8f, 3.4f, 2.4f, 1.2f), |
| 587 gfx::Size(1, 2), gfx::Rect(1337, 5679, 9101112, 131415), | 579 gfx::Size(1, 2), gfx::Rect(1337, 5679, 9101112, 131415), |
| 588 gfx::Rect(1357, 2468, 121314, 1337), true, 2, SkBlendMode::kSrcOver, 1); | 580 gfx::Rect(1357, 2468, 121314, 1337), true, 2, SkBlendMode::kSrcOver, 1); |
| 589 | 581 |
| 590 SharedQuadState* shared_state_2 = input->CreateAndAppendSharedQuadState(); | 582 SharedQuadState* shared_state_2 = input->CreateAndAppendSharedQuadState(); |
| 591 shared_state_2->SetAll( | 583 shared_state_2->SetAll( |
| (...skipping 29 matching lines...) Expand all Loading... |
| 621 proxy->EchoRenderPass(input->DeepCopy(), &output); | 613 proxy->EchoRenderPass(input->DeepCopy(), &output); |
| 622 | 614 |
| 623 EXPECT_EQ(input->quad_list.size(), output->quad_list.size()); | 615 EXPECT_EQ(input->quad_list.size(), output->quad_list.size()); |
| 624 EXPECT_EQ(input->shared_quad_state_list.size(), | 616 EXPECT_EQ(input->shared_quad_state_list.size(), |
| 625 output->shared_quad_state_list.size()); | 617 output->shared_quad_state_list.size()); |
| 626 EXPECT_EQ(id, output->id); | 618 EXPECT_EQ(id, output->id); |
| 627 EXPECT_EQ(output_rect, output->output_rect); | 619 EXPECT_EQ(output_rect, output->output_rect); |
| 628 EXPECT_EQ(damage_rect, output->damage_rect); | 620 EXPECT_EQ(damage_rect, output->damage_rect); |
| 629 EXPECT_EQ(transform_to_root, output->transform_to_root_target); | 621 EXPECT_EQ(transform_to_root, output->transform_to_root_target); |
| 630 EXPECT_EQ(has_transparent_background, output->has_transparent_background); | 622 EXPECT_EQ(has_transparent_background, output->has_transparent_background); |
| 623 EXPECT_EQ(filters, output->filters); |
| 624 EXPECT_EQ(background_filters, output->background_filters); |
| 631 | 625 |
| 632 SharedQuadState* out_sqs1 = output->shared_quad_state_list.ElementAt(0); | 626 SharedQuadState* out_sqs1 = output->shared_quad_state_list.ElementAt(0); |
| 633 EXPECT_EQ(shared_state_1->quad_to_target_transform, | 627 EXPECT_EQ(shared_state_1->quad_to_target_transform, |
| 634 out_sqs1->quad_to_target_transform); | 628 out_sqs1->quad_to_target_transform); |
| 635 EXPECT_EQ(shared_state_1->quad_layer_bounds, out_sqs1->quad_layer_bounds); | 629 EXPECT_EQ(shared_state_1->quad_layer_bounds, out_sqs1->quad_layer_bounds); |
| 636 EXPECT_EQ(shared_state_1->visible_quad_layer_rect, | 630 EXPECT_EQ(shared_state_1->visible_quad_layer_rect, |
| 637 out_sqs1->visible_quad_layer_rect); | 631 out_sqs1->visible_quad_layer_rect); |
| 638 EXPECT_EQ(shared_state_1->clip_rect, out_sqs1->clip_rect); | 632 EXPECT_EQ(shared_state_1->clip_rect, out_sqs1->clip_rect); |
| 639 EXPECT_EQ(shared_state_1->is_clipped, out_sqs1->is_clipped); | 633 EXPECT_EQ(shared_state_1->is_clipped, out_sqs1->is_clipped); |
| 640 EXPECT_EQ(shared_state_1->opacity, out_sqs1->opacity); | 634 EXPECT_EQ(shared_state_1->opacity, out_sqs1->opacity); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 680 | 674 |
| 681 TEST_F(StructTraitsTest, RenderPassWithEmptySharedQuadStateList) { | 675 TEST_F(StructTraitsTest, RenderPassWithEmptySharedQuadStateList) { |
| 682 const int id = 3; | 676 const int id = 3; |
| 683 const gfx::Rect output_rect(45, 22, 120, 13); | 677 const gfx::Rect output_rect(45, 22, 120, 13); |
| 684 const gfx::Transform transform_to_root = | 678 const gfx::Transform transform_to_root = |
| 685 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); | 679 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); |
| 686 const gfx::Rect damage_rect(56, 123, 19, 43); | 680 const gfx::Rect damage_rect(56, 123, 19, 43); |
| 687 const bool has_transparent_background = true; | 681 const bool has_transparent_background = true; |
| 688 std::unique_ptr<RenderPass> input = RenderPass::Create(); | 682 std::unique_ptr<RenderPass> input = RenderPass::Create(); |
| 689 input->SetAll(id, output_rect, damage_rect, transform_to_root, | 683 input->SetAll(id, output_rect, damage_rect, transform_to_root, |
| 684 FilterOperations(), FilterOperations(), |
| 690 has_transparent_background); | 685 has_transparent_background); |
| 691 | 686 |
| 692 // Unlike the previous test, don't add any quads to the list; we need to | 687 // Unlike the previous test, don't add any quads to the list; we need to |
| 693 // verify that the serialization code can deal with that. | 688 // verify that the serialization code can deal with that. |
| 694 std::unique_ptr<RenderPass> output; | 689 std::unique_ptr<RenderPass> output; |
| 695 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); | 690 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
| 696 proxy->EchoRenderPass(input->DeepCopy(), &output); | 691 proxy->EchoRenderPass(input->DeepCopy(), &output); |
| 697 | 692 |
| 698 EXPECT_EQ(input->quad_list.size(), output->quad_list.size()); | 693 EXPECT_EQ(input->quad_list.size(), output->quad_list.size()); |
| 699 EXPECT_EQ(input->shared_quad_state_list.size(), | 694 EXPECT_EQ(input->shared_quad_state_list.size(), |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 924 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id()); | 919 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id()); |
| 925 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id()); | 920 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id()); |
| 926 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id()); | 921 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id()); |
| 927 EXPECT_EQ(color_space, out_quad->color_space); | 922 EXPECT_EQ(color_space, out_quad->color_space); |
| 928 EXPECT_EQ(resource_offset, out_quad->resource_offset); | 923 EXPECT_EQ(resource_offset, out_quad->resource_offset); |
| 929 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier); | 924 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier); |
| 930 EXPECT_EQ(bits_per_channel, out_quad->bits_per_channel); | 925 EXPECT_EQ(bits_per_channel, out_quad->bits_per_channel); |
| 931 } | 926 } |
| 932 | 927 |
| 933 } // namespace cc | 928 } // namespace cc |
| OLD | NEW |