| Index: cc/ipc/struct_traits_unittest.cc
|
| diff --git a/cc/ipc/struct_traits_unittest.cc b/cc/ipc/struct_traits_unittest.cc
|
| index 7f49066890113247456814e00af77f54399eca57..b0984b1a7076e442cffe3c81c250e22486c6c387 100644
|
| --- a/cc/ipc/struct_traits_unittest.cc
|
| +++ b/cc/ipc/struct_traits_unittest.cc
|
| @@ -63,14 +63,9 @@ class StructTraitsTest : public testing::Test, public mojom::TraitsTestService {
|
| callback.Run(f);
|
| }
|
|
|
| - void EchoQuadList(const QuadList& q,
|
| - const EchoQuadListCallback& callback) override {
|
| - callback.Run(q);
|
| - }
|
| -
|
| - void EchoRenderPass(const std::unique_ptr<RenderPass>& r,
|
| + void EchoRenderPass(std::unique_ptr<RenderPass> r,
|
| const EchoRenderPassCallback& callback) override {
|
| - callback.Run(r);
|
| + callback.Run(std::move(r));
|
| }
|
|
|
| void EchoRenderPassId(const RenderPassId& r,
|
| @@ -414,27 +409,31 @@ TEST_F(StructTraitsTest, FilterOperations) {
|
| }
|
|
|
| TEST_F(StructTraitsTest, QuadListBasic) {
|
| - SharedQuadState sqs;
|
| - QuadList input;
|
| + std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
|
| + render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(),
|
| + gfx::Transform());
|
| +
|
| + SharedQuadState* sqs = render_pass->CreateAndAppendSharedQuadState();
|
|
|
| const gfx::Rect rect1(1234, 4321, 1357, 7531);
|
| const SkColor color1 = SK_ColorRED;
|
| const int32_t width1 = 1337;
|
| DebugBorderDrawQuad* debug_quad =
|
| - input.AllocateAndConstruct<DebugBorderDrawQuad>();
|
| - debug_quad->SetNew(&sqs, rect1, rect1, color1, width1);
|
| + render_pass->CreateAndAppendDrawQuad<DebugBorderDrawQuad>();
|
| + debug_quad->SetNew(sqs, rect1, rect1, color1, width1);
|
|
|
| const gfx::Rect rect2(2468, 8642, 4321, 1234);
|
| const uint32_t color2 = 0xffffffff;
|
| const bool force_anti_aliasing_off = true;
|
| SolidColorDrawQuad* solid_quad =
|
| - input.AllocateAndConstruct<SolidColorDrawQuad>();
|
| - solid_quad->SetNew(&sqs, rect2, rect2, color2, force_anti_aliasing_off);
|
| + render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
|
| + solid_quad->SetNew(sqs, rect2, rect2, color2, force_anti_aliasing_off);
|
|
|
| const gfx::Rect rect3(1029, 3847, 5610, 2938);
|
| const SurfaceId surface_id(1234, 5678, 2468);
|
| - SurfaceDrawQuad* surface_quad = input.AllocateAndConstruct<SurfaceDrawQuad>();
|
| - surface_quad->SetNew(&sqs, rect3, rect3, surface_id);
|
| + SurfaceDrawQuad* surface_quad =
|
| + render_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
|
| + surface_quad->SetNew(sqs, rect3, rect3, surface_id);
|
|
|
| const gfx::Rect rect4(1234, 5678, 9101112, 13141516);
|
| const ResourceId resource_id4(1337);
|
| @@ -451,8 +450,8 @@ TEST_F(StructTraitsTest, QuadListBasic) {
|
| background_filters.Append(FilterOperation::CreateSaturateFilter(2.f));
|
|
|
| RenderPassDrawQuad* render_pass_quad =
|
| - input.AllocateAndConstruct<RenderPassDrawQuad>();
|
| - render_pass_quad->SetNew(&sqs, rect4, rect4, render_pass_id, resource_id4,
|
| + render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
|
| + render_pass_quad->SetNew(sqs, rect4, rect4, render_pass_id, resource_id4,
|
| mask_uv_scale, mask_texture_size, filters,
|
| filters_scale, background_filters);
|
|
|
| @@ -467,8 +466,8 @@ TEST_F(StructTraitsTest, QuadListBasic) {
|
| const bool nearest_neighbor = true;
|
| const bool secure_output_only = true;
|
| TextureDrawQuad* texture_draw_quad =
|
| - input.AllocateAndConstruct<TextureDrawQuad>();
|
| - texture_draw_quad->SetNew(&sqs, rect5, rect5, rect5, resource_id5,
|
| + render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
|
| + texture_draw_quad->SetNew(sqs, rect5, rect5, rect5, resource_id5,
|
| premultiplied_alpha, uv_top_left, uv_bottom_right,
|
| background_color, vertex_opacity, y_flipped,
|
| nearest_neighbor, secure_output_only);
|
| @@ -480,25 +479,25 @@ TEST_F(StructTraitsTest, QuadListBasic) {
|
| 9.8f, 8.1f, 7.3f, 6.3f, 5.7f, 4.8f, 3.4f, 2.4f,
|
| 1.2f);
|
| StreamVideoDrawQuad* stream_video_draw_quad =
|
| - input.AllocateAndConstruct<StreamVideoDrawQuad>();
|
| - stream_video_draw_quad->SetNew(&sqs, rect6, rect6, rect6, resource_id6,
|
| + render_pass->CreateAndAppendDrawQuad<StreamVideoDrawQuad>();
|
| + stream_video_draw_quad->SetNew(sqs, rect6, rect6, rect6, resource_id6,
|
| resource_size_in_pixels, matrix);
|
|
|
| mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
|
| - QuadList output;
|
| - proxy->EchoQuadList(input, &output);
|
| + std::unique_ptr<RenderPass> output;
|
| + proxy->EchoRenderPass(render_pass->DeepCopy(), &output);
|
|
|
| - ASSERT_EQ(input.size(), output.size());
|
| + ASSERT_EQ(render_pass->quad_list.size(), output->quad_list.size());
|
|
|
| const DebugBorderDrawQuad* out_debug_border_draw_quad =
|
| - DebugBorderDrawQuad::MaterialCast(output.ElementAt(0));
|
| + DebugBorderDrawQuad::MaterialCast(output->quad_list.ElementAt(0));
|
| EXPECT_EQ(rect1, out_debug_border_draw_quad->rect);
|
| EXPECT_EQ(rect1, out_debug_border_draw_quad->visible_rect);
|
| EXPECT_EQ(color1, out_debug_border_draw_quad->color);
|
| EXPECT_EQ(width1, out_debug_border_draw_quad->width);
|
|
|
| const SolidColorDrawQuad* out_solid_color_draw_quad =
|
| - SolidColorDrawQuad::MaterialCast(output.ElementAt(1));
|
| + SolidColorDrawQuad::MaterialCast(output->quad_list.ElementAt(1));
|
| EXPECT_EQ(rect2, out_solid_color_draw_quad->rect);
|
| EXPECT_EQ(rect2, out_solid_color_draw_quad->visible_rect);
|
| EXPECT_EQ(color2, out_solid_color_draw_quad->color);
|
| @@ -506,13 +505,13 @@ TEST_F(StructTraitsTest, QuadListBasic) {
|
| out_solid_color_draw_quad->force_anti_aliasing_off);
|
|
|
| const SurfaceDrawQuad* out_surface_draw_quad =
|
| - SurfaceDrawQuad::MaterialCast(output.ElementAt(2));
|
| + SurfaceDrawQuad::MaterialCast(output->quad_list.ElementAt(2));
|
| EXPECT_EQ(rect3, out_surface_draw_quad->rect);
|
| EXPECT_EQ(rect3, out_surface_draw_quad->visible_rect);
|
| EXPECT_EQ(surface_id, out_surface_draw_quad->surface_id);
|
|
|
| const RenderPassDrawQuad* out_render_pass_draw_quad =
|
| - RenderPassDrawQuad::MaterialCast(output.ElementAt(3));
|
| + RenderPassDrawQuad::MaterialCast(output->quad_list.ElementAt(3));
|
| EXPECT_EQ(rect4, out_render_pass_draw_quad->rect);
|
| EXPECT_EQ(rect4, out_render_pass_draw_quad->visible_rect);
|
| EXPECT_EQ(render_pass_id, out_render_pass_draw_quad->render_pass_id);
|
| @@ -529,7 +528,7 @@ TEST_F(StructTraitsTest, QuadListBasic) {
|
| out_render_pass_draw_quad->background_filters.at(i));
|
|
|
| const TextureDrawQuad* out_texture_draw_quad =
|
| - TextureDrawQuad::MaterialCast(output.ElementAt(4));
|
| + TextureDrawQuad::MaterialCast(output->quad_list.ElementAt(4));
|
| EXPECT_EQ(rect5, out_texture_draw_quad->rect);
|
| EXPECT_EQ(rect5, out_texture_draw_quad->opaque_rect);
|
| EXPECT_EQ(rect5, out_texture_draw_quad->visible_rect);
|
| @@ -547,7 +546,7 @@ TEST_F(StructTraitsTest, QuadListBasic) {
|
| EXPECT_EQ(secure_output_only, out_texture_draw_quad->secure_output_only);
|
|
|
| const StreamVideoDrawQuad* out_stream_video_draw_quad =
|
| - StreamVideoDrawQuad::MaterialCast(output.ElementAt(5));
|
| + StreamVideoDrawQuad::MaterialCast(output->quad_list.ElementAt(5));
|
| EXPECT_EQ(rect6, out_stream_video_draw_quad->rect);
|
| EXPECT_EQ(rect6, out_stream_video_draw_quad->opaque_rect);
|
| EXPECT_EQ(rect6, out_stream_video_draw_quad->visible_rect);
|
| @@ -606,7 +605,7 @@ TEST_F(StructTraitsTest, RenderPass) {
|
|
|
| std::unique_ptr<RenderPass> output;
|
| mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
|
| - proxy->EchoRenderPass(input, &output);
|
| + proxy->EchoRenderPass(input->DeepCopy(), &output);
|
|
|
| EXPECT_EQ(input->quad_list.size(), output->quad_list.size());
|
| EXPECT_EQ(input->shared_quad_state_list.size(),
|
| @@ -681,7 +680,7 @@ TEST_F(StructTraitsTest, RenderPassWithEmptySharedQuadStateList) {
|
| // verify that the serialization code can deal with that.
|
| std::unique_ptr<RenderPass> output;
|
| mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
|
| - proxy->EchoRenderPass(input, &output);
|
| + proxy->EchoRenderPass(input->DeepCopy(), &output);
|
|
|
| EXPECT_EQ(input->quad_list.size(), output->quad_list.size());
|
| EXPECT_EQ(input->shared_quad_state_list.size(),
|
| @@ -858,6 +857,10 @@ TEST_F(StructTraitsTest, TransferableResource) {
|
| }
|
|
|
| TEST_F(StructTraitsTest, YUVDrawQuad) {
|
| + std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
|
| + render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(),
|
| + gfx::Transform());
|
| +
|
| 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);
|
| @@ -875,24 +878,24 @@ TEST_F(StructTraitsTest, YUVDrawQuad) {
|
| 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,
|
| + SharedQuadState* sqs = render_pass->CreateAndAppendSharedQuadState();
|
| + YUVVideoDrawQuad* quad =
|
| + render_pass->CreateAndAppendDrawQuad<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);
|
| + std::unique_ptr<RenderPass> output;
|
| + proxy->EchoRenderPass(render_pass->DeepCopy(), &output);
|
|
|
| - ASSERT_EQ(input.size(), output.size());
|
| + ASSERT_EQ(render_pass->quad_list.size(), output->quad_list.size());
|
|
|
| - ASSERT_EQ(material, output.ElementAt(0)->material);
|
| + ASSERT_EQ(material, output->quad_list.ElementAt(0)->material);
|
| const YUVVideoDrawQuad* out_quad =
|
| - YUVVideoDrawQuad::MaterialCast(output.ElementAt(0));
|
| + YUVVideoDrawQuad::MaterialCast(output->quad_list.ElementAt(0));
|
| EXPECT_EQ(rect, out_quad->rect);
|
| EXPECT_EQ(opaque_rect, out_quad->opaque_rect);
|
| EXPECT_EQ(visible_rect, out_quad->visible_rect);
|
|
|