| 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/output/copy_output_result.h" |
| 8 #include "cc/quads/debug_border_draw_quad.h" | 9 #include "cc/quads/debug_border_draw_quad.h" |
| 9 #include "cc/quads/render_pass.h" | 10 #include "cc/quads/render_pass.h" |
| 10 #include "cc/quads/render_pass_draw_quad.h" | 11 #include "cc/quads/render_pass_draw_quad.h" |
| 11 #include "cc/quads/solid_color_draw_quad.h" | 12 #include "cc/quads/solid_color_draw_quad.h" |
| 12 #include "cc/quads/stream_video_draw_quad.h" | 13 #include "cc/quads/stream_video_draw_quad.h" |
| 13 #include "cc/quads/surface_draw_quad.h" | 14 #include "cc/quads/surface_draw_quad.h" |
| 14 #include "cc/quads/texture_draw_quad.h" | 15 #include "cc/quads/texture_draw_quad.h" |
| 15 #include "cc/quads/yuv_video_draw_quad.h" | 16 #include "cc/quads/yuv_video_draw_quad.h" |
| 16 #include "mojo/public/cpp/bindings/binding_set.h" | 17 #include "mojo/public/cpp/bindings/binding_set.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 43 const EchoCompositorFrameCallback& callback) override { | 44 const EchoCompositorFrameCallback& callback) override { |
| 44 callback.Run(std::move(c)); | 45 callback.Run(std::move(c)); |
| 45 } | 46 } |
| 46 | 47 |
| 47 void EchoCompositorFrameMetadata( | 48 void EchoCompositorFrameMetadata( |
| 48 const CompositorFrameMetadata& c, | 49 const CompositorFrameMetadata& c, |
| 49 const EchoCompositorFrameMetadataCallback& callback) override { | 50 const EchoCompositorFrameMetadataCallback& callback) override { |
| 50 callback.Run(c); | 51 callback.Run(c); |
| 51 } | 52 } |
| 52 | 53 |
| 54 void EchoCopyOutputRequest( |
| 55 const CopyOutputRequest& c, |
| 56 const EchoCopyOutputRequestCallback& callback) override { |
| 57 callback.Run(std::move(c)); |
| 58 } |
| 59 |
| 53 void EchoFilterOperation( | 60 void EchoFilterOperation( |
| 54 const FilterOperation& f, | 61 const FilterOperation& f, |
| 55 const EchoFilterOperationCallback& callback) override { | 62 const EchoFilterOperationCallback& callback) override { |
| 56 callback.Run(f); | 63 callback.Run(f); |
| 57 } | 64 } |
| 58 | 65 |
| 59 void EchoFilterOperations( | 66 void EchoFilterOperations( |
| 60 const FilterOperations& f, | 67 const FilterOperations& f, |
| 61 const EchoFilterOperationsCallback& callback) override { | 68 const EchoFilterOperationsCallback& callback) override { |
| 62 callback.Run(f); | 69 callback.Run(f); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 void EchoTransferableResource( | 116 void EchoTransferableResource( |
| 110 const TransferableResource& t, | 117 const TransferableResource& t, |
| 111 const EchoTransferableResourceCallback& callback) override { | 118 const EchoTransferableResourceCallback& callback) override { |
| 112 callback.Run(t); | 119 callback.Run(t); |
| 113 } | 120 } |
| 114 | 121 |
| 115 mojo::BindingSet<TraitsTestService> traits_test_bindings_; | 122 mojo::BindingSet<TraitsTestService> traits_test_bindings_; |
| 116 DISALLOW_COPY_AND_ASSIGN(StructTraitsTest); | 123 DISALLOW_COPY_AND_ASSIGN(StructTraitsTest); |
| 117 }; | 124 }; |
| 118 | 125 |
| 126 void StubCopyOutputRequestCallback(std::unique_ptr<CopyOutputResult> result) {} |
| 127 |
| 119 } // namespace | 128 } // namespace |
| 120 | 129 |
| 121 TEST_F(StructTraitsTest, BeginFrameArgs) { | 130 TEST_F(StructTraitsTest, BeginFrameArgs) { |
| 122 const base::TimeTicks frame_time = base::TimeTicks::Now(); | 131 const base::TimeTicks frame_time = base::TimeTicks::Now(); |
| 123 const base::TimeTicks deadline = base::TimeTicks::Now(); | 132 const base::TimeTicks deadline = base::TimeTicks::Now(); |
| 124 const base::TimeDelta interval = base::TimeDelta::FromMilliseconds(1337); | 133 const base::TimeDelta interval = base::TimeDelta::FromMilliseconds(1337); |
| 125 const BeginFrameArgs::BeginFrameArgsType type = BeginFrameArgs::NORMAL; | 134 const BeginFrameArgs::BeginFrameArgsType type = BeginFrameArgs::NORMAL; |
| 126 const bool on_critical_path = true; | 135 const bool on_critical_path = true; |
| 127 BeginFrameArgs input; | 136 BeginFrameArgs input; |
| 128 input.frame_time = frame_time; | 137 input.frame_time = frame_time; |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 ui::LatencyInfo::LatencyComponent component; | 346 ui::LatencyInfo::LatencyComponent component; |
| 338 EXPECT_TRUE(output.latency_info[0].FindLatency( | 347 EXPECT_TRUE(output.latency_info[0].FindLatency( |
| 339 ui::LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT, 1337, | 348 ui::LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT, 1337, |
| 340 &component)); | 349 &component)); |
| 341 EXPECT_EQ(7331, component.sequence_number); | 350 EXPECT_EQ(7331, component.sequence_number); |
| 342 EXPECT_EQ(referenced_surfaces.size(), output.referenced_surfaces.size()); | 351 EXPECT_EQ(referenced_surfaces.size(), output.referenced_surfaces.size()); |
| 343 for (uint32_t i = 0; i < referenced_surfaces.size(); ++i) | 352 for (uint32_t i = 0; i < referenced_surfaces.size(); ++i) |
| 344 EXPECT_EQ(referenced_surfaces[i], output.referenced_surfaces[i]); | 353 EXPECT_EQ(referenced_surfaces[i], output.referenced_surfaces[i]); |
| 345 } | 354 } |
| 346 | 355 |
| 356 TEST_F(StructTraitsTest, CopyOutputRequest) { |
| 357 const gfx::Rect area(5, 7, 44, 55); |
| 358 const auto callback = base::Bind(StubCopyOutputRequestCallback); |
| 359 const int8_t mailbox_name[GL_MAILBOX_SIZE_CHROMIUM] = { |
| 360 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 9, 7, 5, 3, 1, 3}; |
| 361 const uint32_t target = 3; |
| 362 const auto source = |
| 363 base::UnguessableToken::Deserialize(0xdeadbeef, 0xdeadf00d); |
| 364 gpu::Mailbox mailbox; |
| 365 mailbox.SetName(mailbox_name); |
| 366 TextureMailbox texture_mailbox(mailbox, gpu::SyncToken(), target); |
| 367 |
| 368 // Test with bitmap. |
| 369 std::unique_ptr<CopyOutputRequest> input; |
| 370 input = CopyOutputRequest::CreateBitmapRequest(callback); |
| 371 input->set_area(area); |
| 372 input->set_source(source); |
| 373 |
| 374 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
| 375 CopyOutputRequest output; |
| 376 proxy->EchoCopyOutputRequest(*input.get(), &output); |
| 377 |
| 378 EXPECT_TRUE(output.force_bitmap_result()); |
| 379 EXPECT_FALSE(output.has_texture_mailbox()); |
| 380 EXPECT_TRUE(output.has_area()); |
| 381 EXPECT_EQ(area, output.area()); |
| 382 EXPECT_EQ(source, output.source()); |
| 383 |
| 384 // Test with texture mailbox. |
| 385 input = CopyOutputRequest::CreateRequest(callback); |
| 386 input->SetTextureMailbox(texture_mailbox); |
| 387 |
| 388 CopyOutputRequest output2; |
| 389 proxy->EchoCopyOutputRequest(*input.get(), &output2); |
| 390 |
| 391 EXPECT_TRUE(output2.has_texture_mailbox()); |
| 392 EXPECT_FALSE(output2.has_area()); |
| 393 EXPECT_EQ(mailbox, output2.texture_mailbox().mailbox()); |
| 394 EXPECT_EQ(target, output2.texture_mailbox().target()); |
| 395 EXPECT_FALSE(output2.has_source()); |
| 396 } |
| 397 |
| 347 TEST_F(StructTraitsTest, FilterOperation) { | 398 TEST_F(StructTraitsTest, FilterOperation) { |
| 348 const FilterOperation inputs[] = { | 399 const FilterOperation inputs[] = { |
| 349 FilterOperation::CreateBlurFilter(20), | 400 FilterOperation::CreateBlurFilter(20), |
| 350 FilterOperation::CreateDropShadowFilter(gfx::Point(4, 4), 4.0f, | 401 FilterOperation::CreateDropShadowFilter(gfx::Point(4, 4), 4.0f, |
| 351 SkColorSetARGB(255, 40, 0, 0)), | 402 SkColorSetARGB(255, 40, 0, 0)), |
| 352 FilterOperation::CreateReferenceFilter(SkDropShadowImageFilter::Make( | 403 FilterOperation::CreateReferenceFilter(SkDropShadowImageFilter::Make( |
| 353 SkIntToScalar(3), SkIntToScalar(8), SkIntToScalar(4), | 404 SkIntToScalar(3), SkIntToScalar(8), SkIntToScalar(4), |
| 354 SkIntToScalar(9), SK_ColorBLACK, | 405 SkIntToScalar(9), SK_ColorBLACK, |
| 355 SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode, | 406 SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode, |
| 356 nullptr))}; | 407 nullptr))}; |
| (...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 972 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id()); | 1023 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id()); |
| 973 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id()); | 1024 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id()); |
| 974 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id()); | 1025 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id()); |
| 975 EXPECT_EQ(color_space, out_quad->color_space); | 1026 EXPECT_EQ(color_space, out_quad->color_space); |
| 976 EXPECT_EQ(resource_offset, out_quad->resource_offset); | 1027 EXPECT_EQ(resource_offset, out_quad->resource_offset); |
| 977 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier); | 1028 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier); |
| 978 EXPECT_EQ(bits_per_channel, out_quad->bits_per_channel); | 1029 EXPECT_EQ(bits_per_channel, out_quad->bits_per_channel); |
| 979 } | 1030 } |
| 980 | 1031 |
| 981 } // namespace cc | 1032 } // namespace cc |
| OLD | NEW |