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 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
408 proxy->EchoFilterOperations(input, &output); | 408 proxy->EchoFilterOperations(input, &output); |
409 EXPECT_EQ(input.size(), output.size()); | 409 EXPECT_EQ(input.size(), output.size()); |
410 for (size_t i = 0; i < input.size(); ++i) { | 410 for (size_t i = 0; i < input.size(); ++i) { |
411 EXPECT_EQ(input.at(i), output.at(i)); | 411 EXPECT_EQ(input.at(i), output.at(i)); |
412 } | 412 } |
413 } | 413 } |
414 | 414 |
415 TEST_F(StructTraitsTest, QuadListBasic) { | 415 TEST_F(StructTraitsTest, QuadListBasic) { |
416 std::unique_ptr<RenderPass> render_pass = RenderPass::Create(); | 416 std::unique_ptr<RenderPass> render_pass = RenderPass::Create(); |
417 render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(), | 417 render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(), |
418 gfx::Transform()); | 418 gfx::Transform(), FilterOperations(), FilterOperations()); |
419 | 419 |
420 SharedQuadState* sqs = render_pass->CreateAndAppendSharedQuadState(); | 420 SharedQuadState* sqs = render_pass->CreateAndAppendSharedQuadState(); |
421 | 421 |
422 const gfx::Rect rect1(1234, 4321, 1357, 7531); | 422 const gfx::Rect rect1(1234, 4321, 1357, 7531); |
423 const SkColor color1 = SK_ColorRED; | 423 const SkColor color1 = SK_ColorRED; |
424 const int32_t width1 = 1337; | 424 const int32_t width1 = 1337; |
425 DebugBorderDrawQuad* debug_quad = | 425 DebugBorderDrawQuad* debug_quad = |
426 render_pass->CreateAndAppendDrawQuad<DebugBorderDrawQuad>(); | 426 render_pass->CreateAndAppendDrawQuad<DebugBorderDrawQuad>(); |
427 debug_quad->SetNew(sqs, rect1, rect1, color1, width1); | 427 debug_quad->SetNew(sqs, rect1, rect1, color1, width1); |
428 | 428 |
(...skipping 10 matching lines...) Expand all 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 RenderPassId render_pass_id(1234, 5678); | 446 const RenderPassId render_pass_id(1234, 5678); |
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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
517 EXPECT_EQ(rect3, out_surface_draw_quad->visible_rect); | 510 EXPECT_EQ(rect3, out_surface_draw_quad->visible_rect); |
518 EXPECT_EQ(surface_id, out_surface_draw_quad->surface_id); | 511 EXPECT_EQ(surface_id, out_surface_draw_quad->surface_id); |
519 | 512 |
520 const RenderPassDrawQuad* out_render_pass_draw_quad = | 513 const RenderPassDrawQuad* out_render_pass_draw_quad = |
521 RenderPassDrawQuad::MaterialCast(output->quad_list.ElementAt(3)); | 514 RenderPassDrawQuad::MaterialCast(output->quad_list.ElementAt(3)); |
522 EXPECT_EQ(rect4, out_render_pass_draw_quad->rect); | 515 EXPECT_EQ(rect4, out_render_pass_draw_quad->rect); |
523 EXPECT_EQ(rect4, out_render_pass_draw_quad->visible_rect); | 516 EXPECT_EQ(rect4, out_render_pass_draw_quad->visible_rect); |
524 EXPECT_EQ(render_pass_id, out_render_pass_draw_quad->render_pass_id); | 517 EXPECT_EQ(render_pass_id, out_render_pass_draw_quad->render_pass_id); |
525 EXPECT_EQ(resource_id4, out_render_pass_draw_quad->mask_resource_id()); | 518 EXPECT_EQ(resource_id4, out_render_pass_draw_quad->mask_resource_id()); |
526 EXPECT_EQ(mask_texture_size, out_render_pass_draw_quad->mask_texture_size); | 519 EXPECT_EQ(mask_texture_size, out_render_pass_draw_quad->mask_texture_size); |
527 EXPECT_EQ(filters.size(), out_render_pass_draw_quad->filters.size()); | |
528 for (size_t i = 0; i < filters.size(); ++i) | |
529 EXPECT_EQ(filters.at(i), out_render_pass_draw_quad->filters.at(i)); | |
530 EXPECT_EQ(filters_scale, out_render_pass_draw_quad->filters_scale); | 520 EXPECT_EQ(filters_scale, out_render_pass_draw_quad->filters_scale); |
531 EXPECT_EQ(background_filters.size(), | |
532 out_render_pass_draw_quad->background_filters.size()); | |
533 for (size_t i = 0; i < background_filters.size(); ++i) | |
534 EXPECT_EQ(background_filters.at(i), | |
535 out_render_pass_draw_quad->background_filters.at(i)); | |
536 | 521 |
537 const TextureDrawQuad* out_texture_draw_quad = | 522 const TextureDrawQuad* out_texture_draw_quad = |
538 TextureDrawQuad::MaterialCast(output->quad_list.ElementAt(4)); | 523 TextureDrawQuad::MaterialCast(output->quad_list.ElementAt(4)); |
539 EXPECT_EQ(rect5, out_texture_draw_quad->rect); | 524 EXPECT_EQ(rect5, out_texture_draw_quad->rect); |
540 EXPECT_EQ(rect5, out_texture_draw_quad->opaque_rect); | 525 EXPECT_EQ(rect5, out_texture_draw_quad->opaque_rect); |
541 EXPECT_EQ(rect5, out_texture_draw_quad->visible_rect); | 526 EXPECT_EQ(rect5, out_texture_draw_quad->visible_rect); |
542 EXPECT_EQ(resource_id5, out_texture_draw_quad->resource_id()); | 527 EXPECT_EQ(resource_id5, out_texture_draw_quad->resource_id()); |
543 EXPECT_EQ(premultiplied_alpha, out_texture_draw_quad->premultiplied_alpha); | 528 EXPECT_EQ(premultiplied_alpha, out_texture_draw_quad->premultiplied_alpha); |
544 EXPECT_EQ(uv_top_left, out_texture_draw_quad->uv_top_left); | 529 EXPECT_EQ(uv_top_left, out_texture_draw_quad->uv_top_left); |
545 EXPECT_EQ(uv_bottom_right, out_texture_draw_quad->uv_bottom_right); | 530 EXPECT_EQ(uv_bottom_right, out_texture_draw_quad->uv_bottom_right); |
(...skipping 16 matching lines...) Expand all Loading... | |
562 out_stream_video_draw_quad->resource_size_in_pixels()); | 547 out_stream_video_draw_quad->resource_size_in_pixels()); |
563 EXPECT_EQ(matrix, out_stream_video_draw_quad->matrix); | 548 EXPECT_EQ(matrix, out_stream_video_draw_quad->matrix); |
564 } | 549 } |
565 | 550 |
566 TEST_F(StructTraitsTest, RenderPass) { | 551 TEST_F(StructTraitsTest, RenderPass) { |
567 const RenderPassId id(3, 2); | 552 const RenderPassId id(3, 2); |
568 const gfx::Rect output_rect(45, 22, 120, 13); | 553 const gfx::Rect output_rect(45, 22, 120, 13); |
569 const gfx::Transform transform_to_root = | 554 const gfx::Transform transform_to_root = |
570 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); | 555 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); |
571 const gfx::Rect damage_rect(56, 123, 19, 43); | 556 const gfx::Rect damage_rect(56, 123, 19, 43); |
557 FilterOperations filters; | |
558 filters.Append(FilterOperation::CreateBlurFilter(0.f)); | |
danakj
2016/12/01 01:50:46
These are never checked that they survive?
ajuma
2016/12/13 15:08:11
Oops, added checks.
| |
559 filters.Append(FilterOperation::CreateZoomFilter(2.0f, 1)); | |
560 gfx::Vector2dF filters_scale(1234.1f, 4321.2f); | |
561 gfx::PointF filters_origin(8765.4f, 4567.8f); | |
562 FilterOperations background_filters; | |
563 background_filters.Append(FilterOperation::CreateSaturateFilter(4.f)); | |
564 background_filters.Append(FilterOperation::CreateZoomFilter(2.0f, 1)); | |
565 background_filters.Append(FilterOperation::CreateSaturateFilter(2.f)); | |
572 const bool has_transparent_background = true; | 566 const bool has_transparent_background = true; |
573 std::unique_ptr<RenderPass> input = RenderPass::Create(); | 567 std::unique_ptr<RenderPass> input = RenderPass::Create(); |
574 input->SetAll(id, output_rect, damage_rect, transform_to_root, | 568 input->SetAll(id, output_rect, damage_rect, transform_to_root, filters, |
575 has_transparent_background); | 569 background_filters, has_transparent_background); |
576 | 570 |
577 SharedQuadState* shared_state_1 = input->CreateAndAppendSharedQuadState(); | 571 SharedQuadState* shared_state_1 = input->CreateAndAppendSharedQuadState(); |
578 shared_state_1->SetAll( | 572 shared_state_1->SetAll( |
579 gfx::Transform(16.1f, 15.3f, 14.3f, 13.7f, 12.2f, 11.4f, 10.4f, 9.8f, | 573 gfx::Transform(16.1f, 15.3f, 14.3f, 13.7f, 12.2f, 11.4f, 10.4f, 9.8f, |
580 8.1f, 7.3f, 6.3f, 5.7f, 4.8f, 3.4f, 2.4f, 1.2f), | 574 8.1f, 7.3f, 6.3f, 5.7f, 4.8f, 3.4f, 2.4f, 1.2f), |
581 gfx::Size(1, 2), gfx::Rect(1337, 5679, 9101112, 131415), | 575 gfx::Size(1, 2), gfx::Rect(1337, 5679, 9101112, 131415), |
582 gfx::Rect(1357, 2468, 121314, 1337), true, 2, SkBlendMode::kSrcOver, 1); | 576 gfx::Rect(1357, 2468, 121314, 1337), true, 2, SkBlendMode::kSrcOver, 1); |
583 | 577 |
584 SharedQuadState* shared_state_2 = input->CreateAndAppendSharedQuadState(); | 578 SharedQuadState* shared_state_2 = input->CreateAndAppendSharedQuadState(); |
585 shared_state_2->SetAll( | 579 shared_state_2->SetAll( |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
674 | 668 |
675 TEST_F(StructTraitsTest, RenderPassWithEmptySharedQuadStateList) { | 669 TEST_F(StructTraitsTest, RenderPassWithEmptySharedQuadStateList) { |
676 const RenderPassId id(3, 2); | 670 const RenderPassId id(3, 2); |
677 const gfx::Rect output_rect(45, 22, 120, 13); | 671 const gfx::Rect output_rect(45, 22, 120, 13); |
678 const gfx::Transform transform_to_root = | 672 const gfx::Transform transform_to_root = |
679 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); | 673 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); |
680 const gfx::Rect damage_rect(56, 123, 19, 43); | 674 const gfx::Rect damage_rect(56, 123, 19, 43); |
681 const bool has_transparent_background = true; | 675 const bool has_transparent_background = true; |
682 std::unique_ptr<RenderPass> input = RenderPass::Create(); | 676 std::unique_ptr<RenderPass> input = RenderPass::Create(); |
683 input->SetAll(id, output_rect, damage_rect, transform_to_root, | 677 input->SetAll(id, output_rect, damage_rect, transform_to_root, |
678 FilterOperations(), FilterOperations(), | |
684 has_transparent_background); | 679 has_transparent_background); |
685 | 680 |
686 // Unlike the previous test, don't add any quads to the list; we need to | 681 // Unlike the previous test, don't add any quads to the list; we need to |
687 // verify that the serialization code can deal with that. | 682 // verify that the serialization code can deal with that. |
688 std::unique_ptr<RenderPass> output; | 683 std::unique_ptr<RenderPass> output; |
689 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); | 684 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
690 proxy->EchoRenderPass(input->DeepCopy(), &output); | 685 proxy->EchoRenderPass(input->DeepCopy(), &output); |
691 | 686 |
692 EXPECT_EQ(input->quad_list.size(), output->quad_list.size()); | 687 EXPECT_EQ(input->quad_list.size(), output->quad_list.size()); |
693 EXPECT_EQ(input->shared_quad_state_list.size(), | 688 EXPECT_EQ(input->shared_quad_state_list.size(), |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
856 EXPECT_EQ(mailbox_holder.texture_target, | 851 EXPECT_EQ(mailbox_holder.texture_target, |
857 output.mailbox_holder.texture_target); | 852 output.mailbox_holder.texture_target); |
858 EXPECT_EQ(read_lock_fences_enabled, output.read_lock_fences_enabled); | 853 EXPECT_EQ(read_lock_fences_enabled, output.read_lock_fences_enabled); |
859 EXPECT_EQ(is_software, output.is_software); | 854 EXPECT_EQ(is_software, output.is_software); |
860 EXPECT_EQ(is_overlay_candidate, output.is_overlay_candidate); | 855 EXPECT_EQ(is_overlay_candidate, output.is_overlay_candidate); |
861 } | 856 } |
862 | 857 |
863 TEST_F(StructTraitsTest, YUVDrawQuad) { | 858 TEST_F(StructTraitsTest, YUVDrawQuad) { |
864 std::unique_ptr<RenderPass> render_pass = RenderPass::Create(); | 859 std::unique_ptr<RenderPass> render_pass = RenderPass::Create(); |
865 render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(), | 860 render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(), |
866 gfx::Transform()); | 861 gfx::Transform(), FilterOperations(), FilterOperations()); |
867 | 862 |
868 const DrawQuad::Material material = DrawQuad::YUV_VIDEO_CONTENT; | 863 const DrawQuad::Material material = DrawQuad::YUV_VIDEO_CONTENT; |
869 const gfx::Rect rect(1234, 4321, 1357, 7531); | 864 const gfx::Rect rect(1234, 4321, 1357, 7531); |
870 const gfx::Rect opaque_rect(1357, 8642, 432, 123); | 865 const gfx::Rect opaque_rect(1357, 8642, 432, 123); |
871 const gfx::Rect visible_rect(1337, 7331, 561, 293); | 866 const gfx::Rect visible_rect(1337, 7331, 561, 293); |
872 const bool needs_blending = true; | 867 const bool needs_blending = true; |
873 const gfx::RectF ya_tex_coord_rect(1234.1f, 5678.2f, 9101112.3f, 13141516.4f); | 868 const gfx::RectF ya_tex_coord_rect(1234.1f, 5678.2f, 9101112.3f, 13141516.4f); |
874 const gfx::RectF uv_tex_coord_rect(1234.1f, 4321.2f, 1357.3f, 7531.4f); | 869 const gfx::RectF uv_tex_coord_rect(1234.1f, 4321.2f, 1357.3f, 7531.4f); |
875 const gfx::Size ya_tex_size(1234, 5678); | 870 const gfx::Size ya_tex_size(1234, 5678); |
876 const gfx::Size uv_tex_size(4321, 8765); | 871 const gfx::Size uv_tex_size(4321, 8765); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
914 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id()); | 909 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id()); |
915 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id()); | 910 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id()); |
916 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id()); | 911 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id()); |
917 EXPECT_EQ(color_space, out_quad->color_space); | 912 EXPECT_EQ(color_space, out_quad->color_space); |
918 EXPECT_EQ(resource_offset, out_quad->resource_offset); | 913 EXPECT_EQ(resource_offset, out_quad->resource_offset); |
919 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier); | 914 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier); |
920 EXPECT_EQ(bits_per_channel, out_quad->bits_per_channel); | 915 EXPECT_EQ(bits_per_channel, out_quad->bits_per_channel); |
921 } | 916 } |
922 | 917 |
923 } // namespace cc | 918 } // namespace cc |
OLD | NEW |