| 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/output/copy_output_result.h" |
| 9 #include "cc/quads/debug_border_draw_quad.h" | 9 #include "cc/quads/debug_border_draw_quad.h" |
| 10 #include "cc/quads/render_pass.h" | 10 #include "cc/quads/render_pass.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 callback.Run(std::move(c)); | 45 callback.Run(std::move(c)); |
| 46 } | 46 } |
| 47 | 47 |
| 48 void EchoCompositorFrameMetadata( | 48 void EchoCompositorFrameMetadata( |
| 49 const CompositorFrameMetadata& c, | 49 const CompositorFrameMetadata& c, |
| 50 const EchoCompositorFrameMetadataCallback& callback) override { | 50 const EchoCompositorFrameMetadataCallback& callback) override { |
| 51 callback.Run(c); | 51 callback.Run(c); |
| 52 } | 52 } |
| 53 | 53 |
| 54 void EchoCopyOutputRequest( | 54 void EchoCopyOutputRequest( |
| 55 const CopyOutputRequest& c, | 55 std::unique_ptr<CopyOutputRequest> c, |
| 56 const EchoCopyOutputRequestCallback& callback) override { | 56 const EchoCopyOutputRequestCallback& callback) override { |
| 57 callback.Run(std::move(c)); | 57 callback.Run(std::move(c)); |
| 58 } | 58 } |
| 59 | 59 |
| 60 void EchoCopyOutputResult( | 60 void EchoCopyOutputResult( |
| 61 const CopyOutputResult& c, | 61 std::unique_ptr<CopyOutputResult> c, |
| 62 const EchoCopyOutputResultCallback& callback) override { | 62 const EchoCopyOutputResultCallback& callback) override { |
| 63 callback.Run(c); | 63 callback.Run(std::move(c)); |
| 64 } | 64 } |
| 65 | 65 |
| 66 void EchoFilterOperation( | 66 void EchoFilterOperation( |
| 67 const FilterOperation& f, | 67 const FilterOperation& f, |
| 68 const EchoFilterOperationCallback& callback) override { | 68 const EchoFilterOperationCallback& callback) override { |
| 69 callback.Run(f); | 69 callback.Run(f); |
| 70 } | 70 } |
| 71 | 71 |
| 72 void EchoFilterOperations( | 72 void EchoFilterOperations( |
| 73 const FilterOperations& f, | 73 const FilterOperations& f, |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 gpu::Mailbox mailbox; | 373 gpu::Mailbox mailbox; |
| 374 mailbox.SetName(mailbox_name); | 374 mailbox.SetName(mailbox_name); |
| 375 TextureMailbox texture_mailbox(mailbox, gpu::SyncToken(), target); | 375 TextureMailbox texture_mailbox(mailbox, gpu::SyncToken(), target); |
| 376 | 376 |
| 377 // Test with bitmap. | 377 // Test with bitmap. |
| 378 std::unique_ptr<CopyOutputRequest> input; | 378 std::unique_ptr<CopyOutputRequest> input; |
| 379 input = CopyOutputRequest::CreateBitmapRequest(callback); | 379 input = CopyOutputRequest::CreateBitmapRequest(callback); |
| 380 input->set_area(area); | 380 input->set_area(area); |
| 381 input->set_source(source); | 381 input->set_source(source); |
| 382 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); | 382 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
| 383 CopyOutputRequest output; | 383 std::unique_ptr<CopyOutputRequest> output; |
| 384 proxy->EchoCopyOutputRequest(*input.get(), &output); | 384 proxy->EchoCopyOutputRequest(std::move(input), &output); |
| 385 | 385 |
| 386 EXPECT_TRUE(output.force_bitmap_result()); | 386 EXPECT_TRUE(output->force_bitmap_result()); |
| 387 EXPECT_FALSE(output.has_texture_mailbox()); | 387 EXPECT_FALSE(output->has_texture_mailbox()); |
| 388 EXPECT_TRUE(output.has_area()); | 388 EXPECT_TRUE(output->has_area()); |
| 389 EXPECT_EQ(area, output.area()); | 389 EXPECT_EQ(area, output->area()); |
| 390 EXPECT_EQ(source, output.source()); | 390 EXPECT_EQ(source, output->source()); |
| 391 | 391 |
| 392 // Test with texture mailbox. | 392 // Test with texture mailbox. |
| 393 input = CopyOutputRequest::CreateRequest(callback); | 393 input = CopyOutputRequest::CreateRequest(callback); |
| 394 input->SetTextureMailbox(texture_mailbox); | 394 input->SetTextureMailbox(texture_mailbox); |
| 395 | 395 |
| 396 CopyOutputRequest output2; | 396 std::unique_ptr<CopyOutputRequest> output2; |
| 397 proxy->EchoCopyOutputRequest(*input.get(), &output2); | 397 proxy->EchoCopyOutputRequest(std::move(input), &output2); |
| 398 | 398 |
| 399 EXPECT_TRUE(output2.has_texture_mailbox()); | 399 EXPECT_TRUE(output2->has_texture_mailbox()); |
| 400 EXPECT_FALSE(output2.has_area()); | 400 EXPECT_FALSE(output2->has_area()); |
| 401 EXPECT_EQ(mailbox, output2.texture_mailbox().mailbox()); | 401 EXPECT_EQ(mailbox, output2->texture_mailbox().mailbox()); |
| 402 EXPECT_EQ(target, output2.texture_mailbox().target()); | 402 EXPECT_EQ(target, output2->texture_mailbox().target()); |
| 403 EXPECT_FALSE(output2.has_source()); | 403 EXPECT_FALSE(output2->has_source()); |
| 404 } | 404 } |
| 405 | 405 |
| 406 TEST_F(StructTraitsTest, CopyOutputResult_Bitmap) { | 406 TEST_F(StructTraitsTest, CopyOutputResult_Bitmap) { |
| 407 auto bitmap = base::MakeUnique<SkBitmap>(); | 407 auto bitmap = base::MakeUnique<SkBitmap>(); |
| 408 bitmap->allocN32Pixels(7, 8); | 408 bitmap->allocN32Pixels(7, 8); |
| 409 bitmap->eraseARGB(123, 213, 77, 33); | 409 bitmap->eraseARGB(123, 213, 77, 33); |
| 410 auto in_bitmap = base::MakeUnique<SkBitmap>(); |
| 411 bitmap->deepCopyTo(in_bitmap.get()); |
| 410 auto input = CopyOutputResult::CreateBitmapResult(std::move(bitmap)); | 412 auto input = CopyOutputResult::CreateBitmapResult(std::move(bitmap)); |
| 413 auto size = input->size(); |
| 411 | 414 |
| 412 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); | 415 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
| 413 CopyOutputResult output; | 416 std::unique_ptr<CopyOutputResult> output; |
| 414 proxy->EchoCopyOutputResult(*input, &output); | 417 proxy->EchoCopyOutputResult(std::move(input), &output); |
| 415 | 418 |
| 416 EXPECT_TRUE(output.HasBitmap()); | 419 EXPECT_TRUE(output->HasBitmap()); |
| 417 EXPECT_FALSE(output.HasTexture()); | 420 EXPECT_FALSE(output->HasTexture()); |
| 418 EXPECT_EQ(input->size(), output.size()); | 421 EXPECT_EQ(size, output->size()); |
| 419 | 422 |
| 420 std::unique_ptr<SkBitmap> in_bitmap = input->TakeBitmap(); | 423 std::unique_ptr<SkBitmap> out_bitmap = output->TakeBitmap(); |
| 421 std::unique_ptr<SkBitmap> out_bitmap = output.TakeBitmap(); | |
| 422 EXPECT_EQ(in_bitmap->getSize(), out_bitmap->getSize()); | 424 EXPECT_EQ(in_bitmap->getSize(), out_bitmap->getSize()); |
| 423 EXPECT_EQ(0, std::memcmp(in_bitmap->getPixels(), out_bitmap->getPixels(), | 425 EXPECT_EQ(0, std::memcmp(in_bitmap->getPixels(), out_bitmap->getPixels(), |
| 424 in_bitmap->getSize())); | 426 in_bitmap->getSize())); |
| 425 } | 427 } |
| 426 | 428 |
| 427 TEST_F(StructTraitsTest, CopyOutputResult_Texture) { | 429 TEST_F(StructTraitsTest, CopyOutputResult_Texture) { |
| 428 const gfx::Size size(1234, 5678); | 430 const gfx::Size size(1234, 5678); |
| 429 const int8_t mailbox_name[GL_MAILBOX_SIZE_CHROMIUM] = { | 431 const int8_t mailbox_name[GL_MAILBOX_SIZE_CHROMIUM] = { |
| 430 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 9, 7, 5, 3, 1, 3}; | 432 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 9, 7, 5, 3, 1, 3}; |
| 431 const uint32_t target = 3; | 433 const uint32_t target = 3; |
| 432 auto callback = | 434 auto callback = |
| 433 SingleReleaseCallback::Create(base::Bind(StubCopyOutputResultCallback)); | 435 SingleReleaseCallback::Create(base::Bind(StubCopyOutputResultCallback)); |
| 434 gpu::Mailbox mailbox; | 436 gpu::Mailbox mailbox; |
| 435 mailbox.SetName(mailbox_name); | 437 mailbox.SetName(mailbox_name); |
| 436 TextureMailbox texture_mailbox(mailbox, gpu::SyncToken(), target); | 438 TextureMailbox texture_mailbox(mailbox, gpu::SyncToken(), target); |
| 437 | 439 |
| 438 auto input = CopyOutputResult::CreateTextureResult(size, texture_mailbox, | 440 auto input = CopyOutputResult::CreateTextureResult(size, texture_mailbox, |
| 439 std::move(callback)); | 441 std::move(callback)); |
| 440 | 442 |
| 441 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); | 443 mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
| 442 CopyOutputResult output; | 444 std::unique_ptr<CopyOutputResult> output; |
| 443 proxy->EchoCopyOutputResult(*input, &output); | 445 proxy->EchoCopyOutputResult(std::move(input), &output); |
| 444 | 446 |
| 445 EXPECT_FALSE(output.HasBitmap()); | 447 EXPECT_FALSE(output->HasBitmap()); |
| 446 EXPECT_TRUE(output.HasTexture()); | 448 EXPECT_TRUE(output->HasTexture()); |
| 447 EXPECT_EQ(size, output.size()); | 449 EXPECT_EQ(size, output->size()); |
| 448 | 450 |
| 449 TextureMailbox out_mailbox; | 451 TextureMailbox out_mailbox; |
| 450 std::unique_ptr<SingleReleaseCallback> out_callback; | 452 std::unique_ptr<SingleReleaseCallback> out_callback; |
| 451 output.TakeTexture(&out_mailbox, &out_callback); | 453 output->TakeTexture(&out_mailbox, &out_callback); |
| 452 EXPECT_EQ(mailbox, out_mailbox.mailbox()); | 454 EXPECT_EQ(mailbox, out_mailbox.mailbox()); |
| 453 } | 455 } |
| 454 | 456 |
| 455 TEST_F(StructTraitsTest, FilterOperation) { | 457 TEST_F(StructTraitsTest, FilterOperation) { |
| 456 const FilterOperation inputs[] = { | 458 const FilterOperation inputs[] = { |
| 457 FilterOperation::CreateBlurFilter(20), | 459 FilterOperation::CreateBlurFilter(20), |
| 458 FilterOperation::CreateDropShadowFilter(gfx::Point(4, 4), 4.0f, | 460 FilterOperation::CreateDropShadowFilter(gfx::Point(4, 4), 4.0f, |
| 459 SkColorSetARGB(255, 40, 0, 0)), | 461 SkColorSetARGB(255, 40, 0, 0)), |
| 460 FilterOperation::CreateReferenceFilter(SkDropShadowImageFilter::Make( | 462 FilterOperation::CreateReferenceFilter(SkDropShadowImageFilter::Make( |
| 461 SkIntToScalar(3), SkIntToScalar(8), SkIntToScalar(4), | 463 SkIntToScalar(3), SkIntToScalar(8), SkIntToScalar(4), |
| (...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1080 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id()); | 1082 EXPECT_EQ(u_plane_resource_id, out_quad->u_plane_resource_id()); |
| 1081 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id()); | 1083 EXPECT_EQ(v_plane_resource_id, out_quad->v_plane_resource_id()); |
| 1082 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id()); | 1084 EXPECT_EQ(a_plane_resource_id, out_quad->a_plane_resource_id()); |
| 1083 EXPECT_EQ(color_space, out_quad->color_space); | 1085 EXPECT_EQ(color_space, out_quad->color_space); |
| 1084 EXPECT_EQ(resource_offset, out_quad->resource_offset); | 1086 EXPECT_EQ(resource_offset, out_quad->resource_offset); |
| 1085 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier); | 1087 EXPECT_EQ(resource_multiplier, out_quad->resource_multiplier); |
| 1086 EXPECT_EQ(bits_per_channel, out_quad->bits_per_channel); | 1088 EXPECT_EQ(bits_per_channel, out_quad->bits_per_channel); |
| 1087 } | 1089 } |
| 1088 | 1090 |
| 1089 } // namespace cc | 1091 } // namespace cc |
| OLD | NEW |