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

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

Issue 2174843003: cc mojo: Use ArrayDataViews in RenderPasses (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix broken unit test compile Created 4 years, 4 months 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
« no previous file with comments | « cc/ipc/shared_quad_state_struct_traits.h ('k') | cc/ipc/traits_test_service.mojom » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 const EchoFilterOperationCallback& callback) override { 56 const EchoFilterOperationCallback& callback) override {
57 callback.Run(f); 57 callback.Run(f);
58 } 58 }
59 59
60 void EchoFilterOperations( 60 void EchoFilterOperations(
61 const FilterOperations& f, 61 const FilterOperations& f,
62 const EchoFilterOperationsCallback& callback) override { 62 const EchoFilterOperationsCallback& callback) override {
63 callback.Run(f); 63 callback.Run(f);
64 } 64 }
65 65
66 void EchoQuadList(const QuadList& q, 66 void EchoRenderPass(std::unique_ptr<RenderPass> r,
67 const EchoQuadListCallback& callback) override {
68 callback.Run(q);
69 }
70
71 void EchoRenderPass(const std::unique_ptr<RenderPass>& r,
72 const EchoRenderPassCallback& callback) override { 67 const EchoRenderPassCallback& callback) override {
73 callback.Run(r); 68 callback.Run(std::move(r));
74 } 69 }
75 70
76 void EchoRenderPassId(const RenderPassId& r, 71 void EchoRenderPassId(const RenderPassId& r,
77 const EchoRenderPassIdCallback& callback) override { 72 const EchoRenderPassIdCallback& callback) override {
78 callback.Run(r); 73 callback.Run(r);
79 } 74 }
80 75
81 void EchoReturnedResource( 76 void EchoReturnedResource(
82 const ReturnedResource& r, 77 const ReturnedResource& r,
83 const EchoReturnedResourceCallback& callback) override { 78 const EchoReturnedResourceCallback& callback) override {
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); 402 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
408 FilterOperations output; 403 FilterOperations output;
409 proxy->EchoFilterOperations(input, &output); 404 proxy->EchoFilterOperations(input, &output);
410 EXPECT_EQ(input.size(), output.size()); 405 EXPECT_EQ(input.size(), output.size());
411 for (size_t i = 0; i < input.size(); ++i) { 406 for (size_t i = 0; i < input.size(); ++i) {
412 EXPECT_EQ(input.at(i), output.at(i)); 407 EXPECT_EQ(input.at(i), output.at(i));
413 } 408 }
414 } 409 }
415 410
416 TEST_F(StructTraitsTest, QuadListBasic) { 411 TEST_F(StructTraitsTest, QuadListBasic) {
412 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
413
417 SharedQuadState sqs; 414 SharedQuadState sqs;
418 QuadList input;
419 415
420 const gfx::Rect rect1(1234, 4321, 1357, 7531); 416 const gfx::Rect rect1(1234, 4321, 1357, 7531);
421 const SkColor color1 = SK_ColorRED; 417 const SkColor color1 = SK_ColorRED;
422 const int32_t width1 = 1337; 418 const int32_t width1 = 1337;
423 DebugBorderDrawQuad* debug_quad = 419 DebugBorderDrawQuad* debug_quad =
424 input.AllocateAndConstruct<DebugBorderDrawQuad>(); 420 render_pass->CreateAndAppendDrawQuad<DebugBorderDrawQuad>();
425 debug_quad->SetNew(&sqs, rect1, rect1, color1, width1); 421 debug_quad->SetNew(&sqs, rect1, rect1, color1, width1);
426 422
427 const gfx::Rect rect2(2468, 8642, 4321, 1234); 423 const gfx::Rect rect2(2468, 8642, 4321, 1234);
428 const uint32_t color2 = 0xffffffff; 424 const uint32_t color2 = 0xffffffff;
429 const bool force_anti_aliasing_off = true; 425 const bool force_anti_aliasing_off = true;
430 SolidColorDrawQuad* solid_quad = 426 SolidColorDrawQuad* solid_quad =
431 input.AllocateAndConstruct<SolidColorDrawQuad>(); 427 render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
432 solid_quad->SetNew(&sqs, rect2, rect2, color2, force_anti_aliasing_off); 428 solid_quad->SetNew(&sqs, rect2, rect2, color2, force_anti_aliasing_off);
433 429
434 const gfx::Rect rect3(1029, 3847, 5610, 2938); 430 const gfx::Rect rect3(1029, 3847, 5610, 2938);
435 const SurfaceId surface_id(1234, 5678, 2468); 431 const SurfaceId surface_id(1234, 5678, 2468);
436 SurfaceDrawQuad* surface_quad = input.AllocateAndConstruct<SurfaceDrawQuad>(); 432 SurfaceDrawQuad* surface_quad =
433 render_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
437 surface_quad->SetNew(&sqs, rect3, rect3, surface_id); 434 surface_quad->SetNew(&sqs, rect3, rect3, surface_id);
438 435
439 const gfx::Rect rect4(1234, 5678, 9101112, 13141516); 436 const gfx::Rect rect4(1234, 5678, 9101112, 13141516);
440 const ResourceId resource_id4(1337); 437 const ResourceId resource_id4(1337);
441 const RenderPassId render_pass_id(1234, 5678); 438 const RenderPassId render_pass_id(1234, 5678);
442 const gfx::Vector2dF mask_uv_scale(1337.1f, 1234.2f); 439 const gfx::Vector2dF mask_uv_scale(1337.1f, 1234.2f);
443 const gfx::Size mask_texture_size(1234, 5678); 440 const gfx::Size mask_texture_size(1234, 5678);
444 FilterOperations filters; 441 FilterOperations filters;
445 filters.Append(FilterOperation::CreateBlurFilter(0.f)); 442 filters.Append(FilterOperation::CreateBlurFilter(0.f));
446 filters.Append(FilterOperation::CreateZoomFilter(2.0f, 1)); 443 filters.Append(FilterOperation::CreateZoomFilter(2.0f, 1));
447 gfx::Vector2dF filters_scale(1234.1f, 4321.2f); 444 gfx::Vector2dF filters_scale(1234.1f, 4321.2f);
448 FilterOperations background_filters; 445 FilterOperations background_filters;
449 background_filters.Append(FilterOperation::CreateSaturateFilter(4.f)); 446 background_filters.Append(FilterOperation::CreateSaturateFilter(4.f));
450 background_filters.Append(FilterOperation::CreateZoomFilter(2.0f, 1)); 447 background_filters.Append(FilterOperation::CreateZoomFilter(2.0f, 1));
451 background_filters.Append(FilterOperation::CreateSaturateFilter(2.f)); 448 background_filters.Append(FilterOperation::CreateSaturateFilter(2.f));
452 449
453 RenderPassDrawQuad* render_pass_quad = 450 RenderPassDrawQuad* render_pass_quad =
454 input.AllocateAndConstruct<RenderPassDrawQuad>(); 451 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
455 render_pass_quad->SetNew(&sqs, rect4, rect4, render_pass_id, resource_id4, 452 render_pass_quad->SetNew(&sqs, rect4, rect4, render_pass_id, resource_id4,
456 mask_uv_scale, mask_texture_size, filters, 453 mask_uv_scale, mask_texture_size, filters,
457 filters_scale, background_filters); 454 filters_scale, background_filters);
458 455
459 const gfx::Rect rect5(123, 567, 91011, 131415); 456 const gfx::Rect rect5(123, 567, 91011, 131415);
460 const ResourceId resource_id5(1337); 457 const ResourceId resource_id5(1337);
461 const float vertex_opacity[4] = {1.f, 2.f, 3.f, 4.f}; 458 const float vertex_opacity[4] = {1.f, 2.f, 3.f, 4.f};
462 const bool premultiplied_alpha = true; 459 const bool premultiplied_alpha = true;
463 const gfx::PointF uv_top_left(12.1f, 34.2f); 460 const gfx::PointF uv_top_left(12.1f, 34.2f);
464 const gfx::PointF uv_bottom_right(56.3f, 78.4f); 461 const gfx::PointF uv_bottom_right(56.3f, 78.4f);
465 const SkColor background_color = SK_ColorGREEN; 462 const SkColor background_color = SK_ColorGREEN;
466 const bool y_flipped = true; 463 const bool y_flipped = true;
467 const bool nearest_neighbor = true; 464 const bool nearest_neighbor = true;
468 const bool secure_output_only = true; 465 const bool secure_output_only = true;
469 TextureDrawQuad* texture_draw_quad = 466 TextureDrawQuad* texture_draw_quad =
470 input.AllocateAndConstruct<TextureDrawQuad>(); 467 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
471 texture_draw_quad->SetNew(&sqs, rect5, rect5, rect5, resource_id5, 468 texture_draw_quad->SetNew(&sqs, rect5, rect5, rect5, resource_id5,
472 premultiplied_alpha, uv_top_left, uv_bottom_right, 469 premultiplied_alpha, uv_top_left, uv_bottom_right,
473 background_color, vertex_opacity, y_flipped, 470 background_color, vertex_opacity, y_flipped,
474 nearest_neighbor, secure_output_only); 471 nearest_neighbor, secure_output_only);
475 472
476 const gfx::Rect rect6(321, 765, 11109, 151413); 473 const gfx::Rect rect6(321, 765, 11109, 151413);
477 const ResourceId resource_id6(1234); 474 const ResourceId resource_id6(1234);
478 const gfx::Size resource_size_in_pixels(1234, 5678); 475 const gfx::Size resource_size_in_pixels(1234, 5678);
479 const gfx::Transform matrix(16.1f, 15.3f, 14.3f, 13.7f, 12.2f, 11.4f, 10.4f, 476 const gfx::Transform matrix(16.1f, 15.3f, 14.3f, 13.7f, 12.2f, 11.4f, 10.4f,
480 9.8f, 8.1f, 7.3f, 6.3f, 5.7f, 4.8f, 3.4f, 2.4f, 477 9.8f, 8.1f, 7.3f, 6.3f, 5.7f, 4.8f, 3.4f, 2.4f,
481 1.2f); 478 1.2f);
482 StreamVideoDrawQuad* stream_video_draw_quad = 479 StreamVideoDrawQuad* stream_video_draw_quad =
483 input.AllocateAndConstruct<StreamVideoDrawQuad>(); 480 render_pass->CreateAndAppendDrawQuad<StreamVideoDrawQuad>();
484 stream_video_draw_quad->SetNew(&sqs, rect6, rect6, rect6, resource_id6, 481 stream_video_draw_quad->SetNew(&sqs, rect6, rect6, rect6, resource_id6,
485 resource_size_in_pixels, matrix); 482 resource_size_in_pixels, matrix);
486 483
487 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); 484 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
488 QuadList output; 485 std::unique_ptr<RenderPass> output;
489 proxy->EchoQuadList(input, &output); 486 proxy->EchoRenderPass(std::move(render_pass), &output);
490 487
491 ASSERT_EQ(input.size(), output.size()); 488 ASSERT_EQ(6u, output->quad_list.size());
danakj 2016/07/29 20:35:57 store this before moving it rather than hardcoding
Fady Samuel 2016/07/29 21:06:31 Restored original code.
492 489
493 const DebugBorderDrawQuad* out_debug_border_draw_quad = 490 const DebugBorderDrawQuad* out_debug_border_draw_quad =
494 DebugBorderDrawQuad::MaterialCast(output.ElementAt(0)); 491 DebugBorderDrawQuad::MaterialCast(output->quad_list.ElementAt(0));
495 EXPECT_EQ(rect1, out_debug_border_draw_quad->rect); 492 EXPECT_EQ(rect1, out_debug_border_draw_quad->rect);
496 EXPECT_EQ(rect1, out_debug_border_draw_quad->visible_rect); 493 EXPECT_EQ(rect1, out_debug_border_draw_quad->visible_rect);
497 EXPECT_EQ(color1, out_debug_border_draw_quad->color); 494 EXPECT_EQ(color1, out_debug_border_draw_quad->color);
498 EXPECT_EQ(width1, out_debug_border_draw_quad->width); 495 EXPECT_EQ(width1, out_debug_border_draw_quad->width);
499 496
500 const SolidColorDrawQuad* out_solid_color_draw_quad = 497 const SolidColorDrawQuad* out_solid_color_draw_quad =
501 SolidColorDrawQuad::MaterialCast(output.ElementAt(1)); 498 SolidColorDrawQuad::MaterialCast(output->quad_list.ElementAt(1));
502 EXPECT_EQ(rect2, out_solid_color_draw_quad->rect); 499 EXPECT_EQ(rect2, out_solid_color_draw_quad->rect);
503 EXPECT_EQ(rect2, out_solid_color_draw_quad->visible_rect); 500 EXPECT_EQ(rect2, out_solid_color_draw_quad->visible_rect);
504 EXPECT_EQ(color2, out_solid_color_draw_quad->color); 501 EXPECT_EQ(color2, out_solid_color_draw_quad->color);
505 EXPECT_EQ(force_anti_aliasing_off, 502 EXPECT_EQ(force_anti_aliasing_off,
506 out_solid_color_draw_quad->force_anti_aliasing_off); 503 out_solid_color_draw_quad->force_anti_aliasing_off);
507 504
508 const SurfaceDrawQuad* out_surface_draw_quad = 505 const SurfaceDrawQuad* out_surface_draw_quad =
509 SurfaceDrawQuad::MaterialCast(output.ElementAt(2)); 506 SurfaceDrawQuad::MaterialCast(output->quad_list.ElementAt(2));
510 EXPECT_EQ(rect3, out_surface_draw_quad->rect); 507 EXPECT_EQ(rect3, out_surface_draw_quad->rect);
511 EXPECT_EQ(rect3, out_surface_draw_quad->visible_rect); 508 EXPECT_EQ(rect3, out_surface_draw_quad->visible_rect);
512 EXPECT_EQ(surface_id, out_surface_draw_quad->surface_id); 509 EXPECT_EQ(surface_id, out_surface_draw_quad->surface_id);
513 510
514 const RenderPassDrawQuad* out_render_pass_draw_quad = 511 const RenderPassDrawQuad* out_render_pass_draw_quad =
515 RenderPassDrawQuad::MaterialCast(output.ElementAt(3)); 512 RenderPassDrawQuad::MaterialCast(output->quad_list.ElementAt(3));
516 EXPECT_EQ(rect4, out_render_pass_draw_quad->rect); 513 EXPECT_EQ(rect4, out_render_pass_draw_quad->rect);
517 EXPECT_EQ(rect4, out_render_pass_draw_quad->visible_rect); 514 EXPECT_EQ(rect4, out_render_pass_draw_quad->visible_rect);
518 EXPECT_EQ(render_pass_id, out_render_pass_draw_quad->render_pass_id); 515 EXPECT_EQ(render_pass_id, out_render_pass_draw_quad->render_pass_id);
519 EXPECT_EQ(resource_id4, out_render_pass_draw_quad->mask_resource_id()); 516 EXPECT_EQ(resource_id4, out_render_pass_draw_quad->mask_resource_id());
520 EXPECT_EQ(mask_texture_size, out_render_pass_draw_quad->mask_texture_size); 517 EXPECT_EQ(mask_texture_size, out_render_pass_draw_quad->mask_texture_size);
521 EXPECT_EQ(filters.size(), out_render_pass_draw_quad->filters.size()); 518 EXPECT_EQ(filters.size(), out_render_pass_draw_quad->filters.size());
522 for (size_t i = 0; i < filters.size(); ++i) 519 for (size_t i = 0; i < filters.size(); ++i)
523 EXPECT_EQ(filters.at(i), out_render_pass_draw_quad->filters.at(i)); 520 EXPECT_EQ(filters.at(i), out_render_pass_draw_quad->filters.at(i));
524 EXPECT_EQ(filters_scale, out_render_pass_draw_quad->filters_scale); 521 EXPECT_EQ(filters_scale, out_render_pass_draw_quad->filters_scale);
525 EXPECT_EQ(background_filters.size(), 522 EXPECT_EQ(background_filters.size(),
526 out_render_pass_draw_quad->background_filters.size()); 523 out_render_pass_draw_quad->background_filters.size());
527 for (size_t i = 0; i < background_filters.size(); ++i) 524 for (size_t i = 0; i < background_filters.size(); ++i)
528 EXPECT_EQ(background_filters.at(i), 525 EXPECT_EQ(background_filters.at(i),
529 out_render_pass_draw_quad->background_filters.at(i)); 526 out_render_pass_draw_quad->background_filters.at(i));
530 527
531 const TextureDrawQuad* out_texture_draw_quad = 528 const TextureDrawQuad* out_texture_draw_quad =
532 TextureDrawQuad::MaterialCast(output.ElementAt(4)); 529 TextureDrawQuad::MaterialCast(output->quad_list.ElementAt(4));
533 EXPECT_EQ(rect5, out_texture_draw_quad->rect); 530 EXPECT_EQ(rect5, out_texture_draw_quad->rect);
534 EXPECT_EQ(rect5, out_texture_draw_quad->opaque_rect); 531 EXPECT_EQ(rect5, out_texture_draw_quad->opaque_rect);
535 EXPECT_EQ(rect5, out_texture_draw_quad->visible_rect); 532 EXPECT_EQ(rect5, out_texture_draw_quad->visible_rect);
536 EXPECT_EQ(resource_id5, out_texture_draw_quad->resource_id()); 533 EXPECT_EQ(resource_id5, out_texture_draw_quad->resource_id());
537 EXPECT_EQ(premultiplied_alpha, out_texture_draw_quad->premultiplied_alpha); 534 EXPECT_EQ(premultiplied_alpha, out_texture_draw_quad->premultiplied_alpha);
538 EXPECT_EQ(uv_top_left, out_texture_draw_quad->uv_top_left); 535 EXPECT_EQ(uv_top_left, out_texture_draw_quad->uv_top_left);
539 EXPECT_EQ(uv_bottom_right, out_texture_draw_quad->uv_bottom_right); 536 EXPECT_EQ(uv_bottom_right, out_texture_draw_quad->uv_bottom_right);
540 EXPECT_EQ(background_color, out_texture_draw_quad->background_color); 537 EXPECT_EQ(background_color, out_texture_draw_quad->background_color);
541 EXPECT_EQ(vertex_opacity[0], out_texture_draw_quad->vertex_opacity[0]); 538 EXPECT_EQ(vertex_opacity[0], out_texture_draw_quad->vertex_opacity[0]);
542 EXPECT_EQ(vertex_opacity[1], out_texture_draw_quad->vertex_opacity[1]); 539 EXPECT_EQ(vertex_opacity[1], out_texture_draw_quad->vertex_opacity[1]);
543 EXPECT_EQ(vertex_opacity[2], out_texture_draw_quad->vertex_opacity[2]); 540 EXPECT_EQ(vertex_opacity[2], out_texture_draw_quad->vertex_opacity[2]);
544 EXPECT_EQ(vertex_opacity[3], out_texture_draw_quad->vertex_opacity[3]); 541 EXPECT_EQ(vertex_opacity[3], out_texture_draw_quad->vertex_opacity[3]);
545 EXPECT_EQ(y_flipped, out_texture_draw_quad->y_flipped); 542 EXPECT_EQ(y_flipped, out_texture_draw_quad->y_flipped);
546 EXPECT_EQ(nearest_neighbor, out_texture_draw_quad->nearest_neighbor); 543 EXPECT_EQ(nearest_neighbor, out_texture_draw_quad->nearest_neighbor);
547 EXPECT_EQ(secure_output_only, out_texture_draw_quad->secure_output_only); 544 EXPECT_EQ(secure_output_only, out_texture_draw_quad->secure_output_only);
548 545
549 const StreamVideoDrawQuad* out_stream_video_draw_quad = 546 const StreamVideoDrawQuad* out_stream_video_draw_quad =
550 StreamVideoDrawQuad::MaterialCast(output.ElementAt(5)); 547 StreamVideoDrawQuad::MaterialCast(output->quad_list.ElementAt(5));
551 EXPECT_EQ(rect6, out_stream_video_draw_quad->rect); 548 EXPECT_EQ(rect6, out_stream_video_draw_quad->rect);
552 EXPECT_EQ(rect6, out_stream_video_draw_quad->opaque_rect); 549 EXPECT_EQ(rect6, out_stream_video_draw_quad->opaque_rect);
553 EXPECT_EQ(rect6, out_stream_video_draw_quad->visible_rect); 550 EXPECT_EQ(rect6, out_stream_video_draw_quad->visible_rect);
554 EXPECT_EQ(resource_id6, out_stream_video_draw_quad->resource_id()); 551 EXPECT_EQ(resource_id6, out_stream_video_draw_quad->resource_id());
555 EXPECT_EQ(resource_size_in_pixels, 552 EXPECT_EQ(resource_size_in_pixels,
556 out_stream_video_draw_quad->resource_size_in_pixels()); 553 out_stream_video_draw_quad->resource_size_in_pixels());
557 EXPECT_EQ(matrix, out_stream_video_draw_quad->matrix); 554 EXPECT_EQ(matrix, out_stream_video_draw_quad->matrix);
558 } 555 }
559 556
560 TEST_F(StructTraitsTest, RenderPass) { 557 TEST_F(StructTraitsTest, RenderPass) {
561 const RenderPassId id(3, 2); 558 const RenderPassId id(3, 2);
562 const gfx::Rect output_rect(45, 22, 120, 13); 559 const gfx::Rect output_rect(45, 22, 120, 13);
563 const gfx::Transform transform_to_root = 560 const gfx::Transform transform_to_root =
564 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);
565 const gfx::Rect damage_rect(56, 123, 19, 43); 562 const gfx::Rect damage_rect(56, 123, 19, 43);
566 const bool has_transparent_background = true; 563 const bool has_transparent_background = true;
567 std::unique_ptr<RenderPass> input = RenderPass::Create(); 564 std::unique_ptr<RenderPass> input = RenderPass::Create();
565
568 input->SetAll(id, output_rect, damage_rect, transform_to_root, 566 input->SetAll(id, output_rect, damage_rect, transform_to_root,
569 has_transparent_background); 567 has_transparent_background);
570 568
571 SharedQuadState* shared_state_1 = input->CreateAndAppendSharedQuadState(); 569 SharedQuadState* shared_state_1 = input->CreateAndAppendSharedQuadState();
572 shared_state_1->SetAll( 570 shared_state_1->SetAll(
573 gfx::Transform(16.1f, 15.3f, 14.3f, 13.7f, 12.2f, 11.4f, 10.4f, 9.8f, 571 gfx::Transform(16.1f, 15.3f, 14.3f, 13.7f, 12.2f, 11.4f, 10.4f, 9.8f,
574 8.1f, 7.3f, 6.3f, 5.7f, 4.8f, 3.4f, 2.4f, 1.2f), 572 8.1f, 7.3f, 6.3f, 5.7f, 4.8f, 3.4f, 2.4f, 1.2f),
575 gfx::Size(1, 2), gfx::Rect(1337, 5679, 9101112, 131415), 573 gfx::Size(1, 2), gfx::Rect(1337, 5679, 9101112, 131415),
576 gfx::Rect(1357, 2468, 121314, 1337), true, 2, SkXfermode::kSrcOver_Mode, 574 gfx::Rect(1357, 2468, 121314, 1337), true, 2, SkXfermode::kSrcOver_Mode,
577 1); 575 1);
(...skipping 19 matching lines...) Expand all
597 const gfx::Rect color_quad_rect(123, 456, 789, 101); 595 const gfx::Rect color_quad_rect(123, 456, 789, 101);
598 color_quad->SetNew(shared_state_2, color_quad_rect, color_quad_rect, 596 color_quad->SetNew(shared_state_2, color_quad_rect, color_quad_rect,
599 SK_ColorRED, true); 597 SK_ColorRED, true);
600 598
601 SurfaceDrawQuad* surface_quad = 599 SurfaceDrawQuad* surface_quad =
602 input->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 600 input->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
603 const gfx::Rect surface_quad_rect(1337, 2448, 1234, 5678); 601 const gfx::Rect surface_quad_rect(1337, 2448, 1234, 5678);
604 surface_quad->SetNew(shared_state_2, surface_quad_rect, surface_quad_rect, 602 surface_quad->SetNew(shared_state_2, surface_quad_rect, surface_quad_rect,
605 SurfaceId(1337, 1234, 2468)); 603 SurfaceId(1337, 1234, 2468));
606 604
605 std::unique_ptr<RenderPass> input_echo;
606 {
607 RenderPassList pass_list;
danakj 2016/07/29 20:35:57 This is pretty roundabout to make a copy of a Rend
Fady Samuel 2016/07/29 21:06:31 I agree. I hate it too :P I introduced RenderPass:
608 pass_list.push_back(std::move(input));
609
610 RenderPassList echo_pass_list;
611 RenderPass::CopyAll(pass_list, &echo_pass_list);
612
613 input = std::move(pass_list.front());
614 input_echo = std::move(echo_pass_list.front());
615 }
616
607 std::unique_ptr<RenderPass> output; 617 std::unique_ptr<RenderPass> output;
608 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); 618 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
609 proxy->EchoRenderPass(input, &output); 619 proxy->EchoRenderPass(std::move(input_echo), &output);
610 620
611 EXPECT_EQ(input->quad_list.size(), output->quad_list.size()); 621 EXPECT_EQ(3u, output->quad_list.size());
danakj 2016/07/29 20:35:57 save it here also?
Fady Samuel 2016/07/29 21:06:31 Restored original.
612 EXPECT_EQ(input->shared_quad_state_list.size(), 622 EXPECT_EQ(2u, output->shared_quad_state_list.size());
613 output->shared_quad_state_list.size());
614 EXPECT_EQ(id, output->id); 623 EXPECT_EQ(id, output->id);
615 EXPECT_EQ(output_rect, output->output_rect); 624 EXPECT_EQ(output_rect, output->output_rect);
616 EXPECT_EQ(damage_rect, output->damage_rect); 625 EXPECT_EQ(damage_rect, output->damage_rect);
617 EXPECT_EQ(transform_to_root, output->transform_to_root_target); 626 EXPECT_EQ(transform_to_root, output->transform_to_root_target);
618 EXPECT_EQ(has_transparent_background, output->has_transparent_background); 627 EXPECT_EQ(has_transparent_background, output->has_transparent_background);
619 628
620 SharedQuadState* out_sqs1 = output->shared_quad_state_list.ElementAt(0); 629 SharedQuadState* out_sqs1 = output->shared_quad_state_list.ElementAt(0);
621 EXPECT_EQ(shared_state_1->quad_to_target_transform, 630 EXPECT_EQ(shared_state_1->quad_to_target_transform,
622 out_sqs1->quad_to_target_transform); 631 out_sqs1->quad_to_target_transform);
623 EXPECT_EQ(shared_state_1->quad_layer_bounds, out_sqs1->quad_layer_bounds); 632 EXPECT_EQ(shared_state_1->quad_layer_bounds, out_sqs1->quad_layer_bounds);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 const gfx::Rect damage_rect(56, 123, 19, 43); 683 const gfx::Rect damage_rect(56, 123, 19, 43);
675 const bool has_transparent_background = true; 684 const bool has_transparent_background = true;
676 std::unique_ptr<RenderPass> input = RenderPass::Create(); 685 std::unique_ptr<RenderPass> input = RenderPass::Create();
677 input->SetAll(id, output_rect, damage_rect, transform_to_root, 686 input->SetAll(id, output_rect, damage_rect, transform_to_root,
678 has_transparent_background); 687 has_transparent_background);
679 688
680 // Unlike the previous test, don't add any quads to the list; we need to 689 // Unlike the previous test, don't add any quads to the list; we need to
681 // verify that the serialization code can deal with that. 690 // verify that the serialization code can deal with that.
682 std::unique_ptr<RenderPass> output; 691 std::unique_ptr<RenderPass> output;
683 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); 692 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
684 proxy->EchoRenderPass(input, &output); 693 proxy->EchoRenderPass(std::move(input), &output);
685 694
686 EXPECT_EQ(input->quad_list.size(), output->quad_list.size()); 695 EXPECT_EQ(0u, output->quad_list.size());
687 EXPECT_EQ(input->shared_quad_state_list.size(), 696 EXPECT_EQ(0u, output->shared_quad_state_list.size());
688 output->shared_quad_state_list.size());
689 EXPECT_EQ(id, output->id); 697 EXPECT_EQ(id, output->id);
690 EXPECT_EQ(output_rect, output->output_rect); 698 EXPECT_EQ(output_rect, output->output_rect);
691 EXPECT_EQ(damage_rect, output->damage_rect); 699 EXPECT_EQ(damage_rect, output->damage_rect);
692 EXPECT_EQ(transform_to_root, output->transform_to_root_target); 700 EXPECT_EQ(transform_to_root, output->transform_to_root_target);
693 EXPECT_EQ(has_transparent_background, output->has_transparent_background); 701 EXPECT_EQ(has_transparent_background, output->has_transparent_background);
694 } 702 }
695 703
696 TEST_F(StructTraitsTest, RenderPassId) { 704 TEST_F(StructTraitsTest, RenderPassId) {
697 const int layer_id = 1337; 705 const int layer_id = 1337;
698 const uint32_t index = 0xdeadbeef; 706 const uint32_t index = 0xdeadbeef;
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 EXPECT_EQ(mailbox_holder.mailbox, output.mailbox_holder.mailbox); 859 EXPECT_EQ(mailbox_holder.mailbox, output.mailbox_holder.mailbox);
852 EXPECT_EQ(mailbox_holder.sync_token, output.mailbox_holder.sync_token); 860 EXPECT_EQ(mailbox_holder.sync_token, output.mailbox_holder.sync_token);
853 EXPECT_EQ(mailbox_holder.texture_target, 861 EXPECT_EQ(mailbox_holder.texture_target,
854 output.mailbox_holder.texture_target); 862 output.mailbox_holder.texture_target);
855 EXPECT_EQ(read_lock_fences_enabled, output.read_lock_fences_enabled); 863 EXPECT_EQ(read_lock_fences_enabled, output.read_lock_fences_enabled);
856 EXPECT_EQ(is_software, output.is_software); 864 EXPECT_EQ(is_software, output.is_software);
857 EXPECT_EQ(is_overlay_candidate, output.is_overlay_candidate); 865 EXPECT_EQ(is_overlay_candidate, output.is_overlay_candidate);
858 } 866 }
859 867
860 TEST_F(StructTraitsTest, YUVDrawQuad) { 868 TEST_F(StructTraitsTest, YUVDrawQuad) {
869 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
870
861 const DrawQuad::Material material = DrawQuad::YUV_VIDEO_CONTENT; 871 const DrawQuad::Material material = DrawQuad::YUV_VIDEO_CONTENT;
862 const gfx::Rect rect(1234, 4321, 1357, 7531); 872 const gfx::Rect rect(1234, 4321, 1357, 7531);
863 const gfx::Rect opaque_rect(1357, 8642, 432, 123); 873 const gfx::Rect opaque_rect(1357, 8642, 432, 123);
864 const gfx::Rect visible_rect(1337, 7331, 561, 293); 874 const gfx::Rect visible_rect(1337, 7331, 561, 293);
865 const bool needs_blending = true; 875 const bool needs_blending = true;
866 const gfx::RectF ya_tex_coord_rect(1234.1f, 5678.2f, 9101112.3f, 13141516.4f); 876 const gfx::RectF ya_tex_coord_rect(1234.1f, 5678.2f, 9101112.3f, 13141516.4f);
867 const gfx::RectF uv_tex_coord_rect(1234.1f, 4321.2f, 1357.3f, 7531.4f); 877 const gfx::RectF uv_tex_coord_rect(1234.1f, 4321.2f, 1357.3f, 7531.4f);
868 const gfx::Size ya_tex_size(1234, 5678); 878 const gfx::Size ya_tex_size(1234, 5678);
869 const gfx::Size uv_tex_size(4321, 8765); 879 const gfx::Size uv_tex_size(4321, 8765);
870 const uint32_t y_plane_resource_id = 1337; 880 const uint32_t y_plane_resource_id = 1337;
871 const uint32_t u_plane_resource_id = 1234; 881 const uint32_t u_plane_resource_id = 1234;
872 const uint32_t v_plane_resource_id = 2468; 882 const uint32_t v_plane_resource_id = 2468;
873 const uint32_t a_plane_resource_id = 7890; 883 const uint32_t a_plane_resource_id = 7890;
874 const YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG; 884 const YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG;
875 const float resource_offset = 1337.5f; 885 const float resource_offset = 1337.5f;
876 const float resource_multiplier = 1234.6f; 886 const float resource_multiplier = 1234.6f;
877 887
878 SharedQuadState sqs; 888 SharedQuadState sqs;
879 QuadList input; 889 YUVVideoDrawQuad* quad =
880 YUVVideoDrawQuad* quad = input.AllocateAndConstruct<YUVVideoDrawQuad>(); 890 render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>();
881 quad->SetAll(&sqs, rect, opaque_rect, visible_rect, needs_blending, 891 quad->SetAll(&sqs, rect, opaque_rect, visible_rect, needs_blending,
882 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, uv_tex_size, 892 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, uv_tex_size,
883 y_plane_resource_id, u_plane_resource_id, v_plane_resource_id, 893 y_plane_resource_id, u_plane_resource_id, v_plane_resource_id,
884 a_plane_resource_id, color_space, resource_offset, 894 a_plane_resource_id, color_space, resource_offset,
885 resource_multiplier); 895 resource_multiplier);
886 896
887 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); 897 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
888 QuadList output; 898 std::unique_ptr<RenderPass> output;
889 proxy->EchoQuadList(input, &output); 899 proxy->EchoRenderPass(std::move(render_pass), &output);
890 900
891 ASSERT_EQ(input.size(), output.size()); 901 ASSERT_EQ(1u, output->quad_list.size());
danakj 2016/07/29 20:35:57 ditto, save it?
Fady Samuel 2016/07/29 21:06:31 Restored.
892 902
893 ASSERT_EQ(material, output.ElementAt(0)->material); 903 ASSERT_EQ(material, output->quad_list.ElementAt(0)->material);
894 const YUVVideoDrawQuad* out_quad = 904 const YUVVideoDrawQuad* out_quad =
895 YUVVideoDrawQuad::MaterialCast(output.ElementAt(0)); 905 YUVVideoDrawQuad::MaterialCast(output->quad_list.ElementAt(0));
896 EXPECT_EQ(rect, out_quad->rect); 906 EXPECT_EQ(rect, out_quad->rect);
897 EXPECT_EQ(opaque_rect, out_quad->opaque_rect); 907 EXPECT_EQ(opaque_rect, out_quad->opaque_rect);
898 EXPECT_EQ(visible_rect, out_quad->visible_rect); 908 EXPECT_EQ(visible_rect, out_quad->visible_rect);
899 EXPECT_EQ(needs_blending, out_quad->needs_blending); 909 EXPECT_EQ(needs_blending, out_quad->needs_blending);
900 EXPECT_EQ(ya_tex_coord_rect, out_quad->ya_tex_coord_rect); 910 EXPECT_EQ(ya_tex_coord_rect, out_quad->ya_tex_coord_rect);
901 EXPECT_EQ(uv_tex_coord_rect, out_quad->uv_tex_coord_rect); 911 EXPECT_EQ(uv_tex_coord_rect, out_quad->uv_tex_coord_rect);
902 EXPECT_EQ(ya_tex_size, out_quad->ya_tex_size); 912 EXPECT_EQ(ya_tex_size, out_quad->ya_tex_size);
903 EXPECT_EQ(uv_tex_size, out_quad->uv_tex_size); 913 EXPECT_EQ(uv_tex_size, out_quad->uv_tex_size);
904 EXPECT_EQ(y_plane_resource_id, out_quad->y_plane_resource_id()); 914 EXPECT_EQ(y_plane_resource_id, out_quad->y_plane_resource_id());
905 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id()); 915 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id());
906 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id()); 916 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id());
907 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id()); 917 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id());
908 EXPECT_EQ(color_space, out_quad->color_space); 918 EXPECT_EQ(color_space, out_quad->color_space);
909 EXPECT_EQ(resource_offset, out_quad->resource_offset); 919 EXPECT_EQ(resource_offset, out_quad->resource_offset);
910 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier); 920 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier);
911 } 921 }
912 922
913 } // namespace cc 923 } // namespace cc
OLDNEW
« no previous file with comments | « cc/ipc/shared_quad_state_struct_traits.h ('k') | cc/ipc/traits_test_service.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698