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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: cc/ipc/struct_traits_unittest.cc
diff --git a/cc/ipc/struct_traits_unittest.cc b/cc/ipc/struct_traits_unittest.cc
index 792eb5eb7344ab26dadcc7a8d2223760e9c66fa3..f958558e2b86acfb3f5e6a2979a5e6a70af45752 100644
--- a/cc/ipc/struct_traits_unittest.cc
+++ b/cc/ipc/struct_traits_unittest.cc
@@ -11,6 +11,7 @@
#include "cc/quads/render_pass_id.h"
#include "cc/quads/solid_color_draw_quad.h"
#include "cc/quads/surface_draw_quad.h"
+#include "cc/quads/yuv_video_draw_quad.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkString.h"
@@ -510,4 +511,57 @@ TEST_F(StructTraitsTest, TransferableResource) {
EXPECT_EQ(is_overlay_candidate, output.is_overlay_candidate);
}
+TEST_F(StructTraitsTest, YUVDrawQuad) {
+ const DrawQuad::Material material = DrawQuad::YUV_VIDEO_CONTENT;
+ const gfx::Rect rect(1234, 4321, 1357, 7531);
+ const gfx::Rect opaque_rect(1357, 8642, 432, 123);
+ const gfx::Rect visible_rect(1337, 7331, 561, 293);
+ const bool needs_blending = true;
+ const gfx::RectF ya_tex_coord_rect(1234.1f, 5678.2f, 9101112.3f, 13141516.4f);
+ const gfx::RectF uv_tex_coord_rect(1234.1f, 4321.2f, 1357.3f, 7531.4f);
+ const gfx::Size ya_tex_size(1234, 5678);
+ const gfx::Size uv_tex_size(4321, 8765);
+ const uint32_t y_plane_resource_id = 1337;
+ const uint32_t u_plane_resource_id = 1234;
+ const uint32_t v_plane_resource_id = 2468;
+ const uint32_t a_plane_resource_id = 7890;
+ const YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG;
+ const float resource_offset = 1337.5f;
+ const float resource_multiplier = 1234.6f;
+
+ SharedQuadState sqs;
+ QuadList input;
+ YUVVideoDrawQuad* quad = input.AllocateAndConstruct<YUVVideoDrawQuad>();
+ quad->SetAll(&sqs, rect, opaque_rect, visible_rect, needs_blending,
+ ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, uv_tex_size,
+ y_plane_resource_id, u_plane_resource_id, v_plane_resource_id,
+ a_plane_resource_id, color_space, resource_offset,
+ resource_multiplier);
+
+ mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
+ QuadList output;
+ proxy->EchoQuadList(input, &output);
+
+ ASSERT_EQ(input.size(), output.size());
+
+ ASSERT_EQ(material, output.ElementAt(0)->material);
+ const YUVVideoDrawQuad* out_quad =
+ YUVVideoDrawQuad::MaterialCast(output.ElementAt(0));
+ EXPECT_EQ(rect, out_quad->rect);
+ EXPECT_EQ(opaque_rect, out_quad->opaque_rect);
+ EXPECT_EQ(visible_rect, out_quad->visible_rect);
+ EXPECT_EQ(needs_blending, out_quad->needs_blending);
+ EXPECT_EQ(ya_tex_coord_rect, out_quad->ya_tex_coord_rect);
+ EXPECT_EQ(uv_tex_coord_rect, out_quad->uv_tex_coord_rect);
+ EXPECT_EQ(ya_tex_size, out_quad->ya_tex_size);
+ EXPECT_EQ(uv_tex_size, out_quad->uv_tex_size);
+ EXPECT_EQ(y_plane_resource_id, out_quad->y_plane_resource_id());
+ EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id());
+ EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id());
+ EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id());
+ EXPECT_EQ(color_space, out_quad->color_space);
+ EXPECT_EQ(resource_offset, out_quad->resource_offset);
+ EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier);
+}
+
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698