| 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" |
| 11 #include "cc/quads/render_pass_id.h" | 11 #include "cc/quads/render_pass_id.h" |
| 12 #include "cc/quads/solid_color_draw_quad.h" | 12 #include "cc/quads/solid_color_draw_quad.h" |
| 13 #include "cc/quads/surface_draw_quad.h" | 13 #include "cc/quads/surface_draw_quad.h" |
| 14 #include "cc/quads/yuv_video_draw_quad.h" |
| 14 #include "mojo/public/cpp/bindings/binding_set.h" | 15 #include "mojo/public/cpp/bindings/binding_set.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 16 #include "third_party/skia/include/core/SkString.h" | 17 #include "third_party/skia/include/core/SkString.h" |
| 17 #include "third_party/skia/include/effects/SkDropShadowImageFilter.h" | 18 #include "third_party/skia/include/effects/SkDropShadowImageFilter.h" |
| 18 | 19 |
| 19 namespace cc { | 20 namespace cc { |
| 20 | 21 |
| 21 namespace { | 22 namespace { |
| 22 | 23 |
| 23 class StructTraitsTest : public testing::Test, public mojom::TraitsTestService { | 24 class StructTraitsTest : public testing::Test, public mojom::TraitsTestService { |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 EXPECT_EQ(mailbox_holder.mailbox, output.mailbox_holder.mailbox); | 504 EXPECT_EQ(mailbox_holder.mailbox, output.mailbox_holder.mailbox); |
| 504 EXPECT_EQ(mailbox_holder.sync_token, output.mailbox_holder.sync_token); | 505 EXPECT_EQ(mailbox_holder.sync_token, output.mailbox_holder.sync_token); |
| 505 EXPECT_EQ(mailbox_holder.texture_target, | 506 EXPECT_EQ(mailbox_holder.texture_target, |
| 506 output.mailbox_holder.texture_target); | 507 output.mailbox_holder.texture_target); |
| 507 EXPECT_EQ(read_lock_fences_enabled, output.read_lock_fences_enabled); | 508 EXPECT_EQ(read_lock_fences_enabled, output.read_lock_fences_enabled); |
| 508 EXPECT_EQ(is_software, output.is_software); | 509 EXPECT_EQ(is_software, output.is_software); |
| 509 EXPECT_EQ(gpu_memory_buffer_id, output.gpu_memory_buffer_id.id); | 510 EXPECT_EQ(gpu_memory_buffer_id, output.gpu_memory_buffer_id.id); |
| 510 EXPECT_EQ(is_overlay_candidate, output.is_overlay_candidate); | 511 EXPECT_EQ(is_overlay_candidate, output.is_overlay_candidate); |
| 511 } | 512 } |
| 512 | 513 |
| 514 TEST_F(StructTraitsTest, YUVDrawQuad) { |
| 515 const DrawQuad::Material material = DrawQuad::YUV_VIDEO_CONTENT; |
| 516 const gfx::Rect rect(1234, 4321, 1357, 7531); |
| 517 const gfx::Rect opaque_rect(1357, 8642, 432, 123); |
| 518 const gfx::Rect visible_rect(1337, 7331, 561, 293); |
| 519 const bool needs_blending = true; |
| 520 const gfx::RectF ya_tex_coord_rect(1234.1f, 5678.2f, 9101112.3f, 13141516.4f); |
| 521 const gfx::RectF uv_tex_coord_rect(1234.1f, 4321.2f, 1357.3f, 7531.4f); |
| 522 const gfx::Size ya_tex_size(1234, 5678); |
| 523 const gfx::Size uv_tex_size(4321, 8765); |
| 524 const uint32_t y_plane_resource_id = 1337; |
| 525 const uint32_t u_plane_resource_id = 1234; |
| 526 const uint32_t v_plane_resource_id = 2468; |
| 527 const uint32_t a_plane_resource_id = 7890; |
| 528 const YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG; |
| 529 const float resource_offset = 1337.5f; |
| 530 const float resource_multiplier = 1234.6f; |
| 531 |
| 532 SharedQuadState sqs; |
| 533 QuadList input; |
| 534 YUVVideoDrawQuad* quad = input.AllocateAndConstruct<YUVVideoDrawQuad>(); |
| 535 quad->SetAll(&sqs, rect, opaque_rect, visible_rect, needs_blending, |
| 536 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, uv_tex_size, |
| 537 y_plane_resource_id, u_plane_resource_id, v_plane_resource_id, |
| 538 a_plane_resource_id, color_space, resource_offset, |
| 539 resource_multiplier); |
| 540 |
| 541 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
| 542 QuadList output; |
| 543 proxy->EchoQuadList(input, &output); |
| 544 |
| 545 ASSERT_EQ(input.size(), output.size()); |
| 546 |
| 547 ASSERT_EQ(material, output.ElementAt(0)->material); |
| 548 const YUVVideoDrawQuad* out_quad = |
| 549 YUVVideoDrawQuad::MaterialCast(output.ElementAt(0)); |
| 550 EXPECT_EQ(rect, out_quad->rect); |
| 551 EXPECT_EQ(opaque_rect, out_quad->opaque_rect); |
| 552 EXPECT_EQ(visible_rect, out_quad->visible_rect); |
| 553 EXPECT_EQ(needs_blending, out_quad->needs_blending); |
| 554 EXPECT_EQ(ya_tex_coord_rect, out_quad->ya_tex_coord_rect); |
| 555 EXPECT_EQ(uv_tex_coord_rect, out_quad->uv_tex_coord_rect); |
| 556 EXPECT_EQ(ya_tex_size, out_quad->ya_tex_size); |
| 557 EXPECT_EQ(uv_tex_size, out_quad->uv_tex_size); |
| 558 EXPECT_EQ(y_plane_resource_id, out_quad->y_plane_resource_id()); |
| 559 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id()); |
| 560 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id()); |
| 561 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id()); |
| 562 EXPECT_EQ(color_space, out_quad->color_space); |
| 563 EXPECT_EQ(resource_offset, out_quad->resource_offset); |
| 564 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier); |
| 565 } |
| 566 |
| 513 } // namespace cc | 567 } // namespace cc |
| OLD | NEW |