Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(613)

Side by Side Diff: cc/ipc/struct_traits_unittest.cc

Issue 2543473004: cc: Move filters from RenderPassDrawQuad to RenderPass (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698