Chromium Code Reviews| Index: components/exo/buffer_unittest.cc |
| diff --git a/components/exo/buffer_unittest.cc b/components/exo/buffer_unittest.cc |
| index 987c29056538f8a580c6c9eedddd5c5583d68a9d..ca3793a2340f56583afa6d94b37aeabceae5eed4 100644 |
| --- a/components/exo/buffer_unittest.cc |
| +++ b/components/exo/buffer_unittest.cc |
| @@ -31,6 +31,9 @@ TEST_F(BufferTest, ReleaseCallback) { |
| gfx::Size buffer_size(256, 256); |
| std::unique_ptr<Buffer> buffer( |
| new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size))); |
| + std::unique_ptr<Surface> surface(new Surface()); |
|
reveman
2017/01/03 23:24:47
nit: s/new Surface()/new Surface/
Alex Z.
2017/01/03 23:39:15
Done.
|
| + scoped_refptr<CompositorFrameSinkHolder> compositor_frame_sink_holder = |
| + new CompositorFrameSinkHolder(surface.get(), nullptr, nullptr); |
| // Set the release callback. |
| int release_call_count = 0; |
| @@ -38,15 +41,21 @@ TEST_F(BufferTest, ReleaseCallback) { |
| base::Bind(&Release, base::Unretained(&release_call_count))); |
| buffer->OnAttach(); |
| - // Produce a texture mailbox for the contents of the buffer. |
| - cc::TextureMailbox texture_mailbox; |
| - std::unique_ptr<cc::SingleReleaseCallback> buffer_release_callback = |
| - buffer->ProduceTextureMailbox(&texture_mailbox, false, true); |
| - ASSERT_TRUE(buffer_release_callback); |
| + cc::TransferableResource resource; |
| + // Produce a transferable resource for the contents of the buffer. |
| + bool r = buffer->ProduceTransferableResource( |
|
reveman
2017/01/03 23:24:47
nit: s/bool r/bool rv/ for consistency
Alex Z.
2017/01/03 23:39:15
Done.
|
| + compositor_frame_sink_holder.get(), 0, false, true, &resource); |
| + ASSERT_TRUE(r); |
| // Release buffer. |
| - buffer_release_callback->Run(gpu::SyncToken(), false); |
| - |
| + cc::ReturnedResource returned_resource; |
| + returned_resource.id = resource.id; |
| + returned_resource.sync_token = resource.mailbox_holder.sync_token; |
| + returned_resource.lost = false; |
| + cc::ReturnedResourceArray resources = {returned_resource}; |
| + compositor_frame_sink_holder->ReclaimResources(resources); |
| + |
| + RunAllPendingInMessageLoop(); |
| ASSERT_EQ(release_call_count, 0); |
| buffer->OnDetach(); |
| @@ -59,13 +68,17 @@ TEST_F(BufferTest, IsLost) { |
| gfx::Size buffer_size(256, 256); |
| std::unique_ptr<Buffer> buffer( |
| new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size))); |
| + std::unique_ptr<Surface> surface(new Surface()); |
|
reveman
2017/01/03 23:24:47
nit: s/new Surface()/new Surface/
Alex Z.
2017/01/03 23:39:15
Done.
|
| + scoped_refptr<CompositorFrameSinkHolder> compositor_frame_sink_holder = |
| + new CompositorFrameSinkHolder(surface.get(), nullptr, nullptr); |
| + cc::ResourceId resource_id = 0; |
| buffer->OnAttach(); |
| - // Acquire a texture mailbox for the contents of the buffer. |
| - cc::TextureMailbox texture_mailbox; |
| - std::unique_ptr<cc::SingleReleaseCallback> buffer_release_callback = |
| - buffer->ProduceTextureMailbox(&texture_mailbox, false, true); |
| - ASSERT_TRUE(buffer_release_callback); |
| + // Acquire a texture transferable resource for the contents of the buffer. |
| + cc::TransferableResource resource; |
| + bool r = buffer->ProduceTransferableResource( |
|
reveman
2017/01/03 23:24:47
nit: s/bool r/bool rv/
Alex Z.
2017/01/03 23:39:15
Done.
|
| + compositor_frame_sink_holder.get(), resource_id, false, true, &resource); |
| + ASSERT_TRUE(r); |
| scoped_refptr<cc::ContextProvider> context_provider = |
| aura::Env::GetInstance() |
| @@ -79,15 +92,31 @@ TEST_F(BufferTest, IsLost) { |
| // Release buffer. |
| bool is_lost = true; |
| - buffer_release_callback->Run(gpu::SyncToken(), is_lost); |
| - |
| - // Producing a new texture mailbox for the contents of the buffer. |
| - std::unique_ptr<cc::SingleReleaseCallback> buffer_release_callback2 = |
| - buffer->ProduceTextureMailbox(&texture_mailbox, false, false); |
| - ASSERT_TRUE(buffer_release_callback2); |
| + cc::ReturnedResource returned_resource; |
| + returned_resource.id = resource_id; |
| + returned_resource.sync_token = gpu::SyncToken(); |
| + returned_resource.lost = is_lost; |
| + cc::ReturnedResourceArray resources = {returned_resource}; |
| + compositor_frame_sink_holder->ReclaimResources(resources); |
| + RunAllPendingInMessageLoop(); |
| + |
| + // Producing a new texture transferable resource for the contents of the |
| + // buffer. |
| + ++resource_id; |
| + cc::TransferableResource new_resource; |
| + bool r2 = buffer->ProduceTransferableResource( |
|
reveman
2017/01/03 23:24:46
nit: s/bool r2/bool rv/ or just "rv = ..." if rv i
Alex Z.
2017/01/03 23:39:15
Done.
|
| + compositor_frame_sink_holder.get(), resource_id, false, false, |
| + &new_resource); |
| + ASSERT_TRUE(r2); |
| buffer->OnDetach(); |
| - buffer_release_callback2->Run(gpu::SyncToken(), false); |
| + cc::ReturnedResource returned_resource2; |
| + returned_resource2.id = resource_id; |
| + returned_resource2.sync_token = gpu::SyncToken(); |
| + returned_resource2.lost = false; |
| + cc::ReturnedResourceArray resources2 = {returned_resource2}; |
| + compositor_frame_sink_holder->ReclaimResources(resources2); |
| + RunAllPendingInMessageLoop(); |
| } |
| } // namespace |