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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |