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

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

Issue 2072273002: Implement YUVVideoDrawQuad StructTraits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added unit test Created 4 years, 6 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
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"
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698