| OLD | NEW | 
| (Empty) |  | 
 |   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 | 
 |   3 // found in the LICENSE file. | 
 |   4  | 
 |   5 #include "gpu/ipc/client/client_gpu_memory_buffer_manager.h" | 
 |   6  | 
 |   7 #include "base/bind.h" | 
 |   8 #include "base/trace_event/trace_event.h" | 
 |   9 #include "gpu/command_buffer/common/sync_token.h" | 
 |  10 #include "gpu/ipc/client/gpu_memory_buffer_impl.h" | 
 |  11  | 
 |  12 namespace gpu { | 
 |  13  | 
 |  14 ClientGpuMemoryBufferManager::ClientGpuMemoryBufferManager(Delegate* delegate) | 
 |  15     : delegate_(delegate) { | 
 |  16   DCHECK(delegate_); | 
 |  17 } | 
 |  18  | 
 |  19 ClientGpuMemoryBufferManager::~ClientGpuMemoryBufferManager() {} | 
 |  20  | 
 |  21 std::unique_ptr<gfx::GpuMemoryBuffer> | 
 |  22 ClientGpuMemoryBufferManager::AllocateGpuMemoryBuffer( | 
 |  23     const gfx::Size& size, | 
 |  24     gfx::BufferFormat format, | 
 |  25     gfx::BufferUsage usage, | 
 |  26     SurfaceHandle surface_handle) { | 
 |  27   DCHECK(delegate_); | 
 |  28   DCHECK_EQ(kNullSurfaceHandle, surface_handle); | 
 |  29   TRACE_EVENT2("renderer", | 
 |  30                "ClientGpuMemoryBufferManager::AllocateGpuMemoryBuffer", "width", | 
 |  31                size.width(), "height", size.height()); | 
 |  32  | 
 |  33   gfx::GpuMemoryBufferHandle handle = | 
 |  34       delegate_->GetSharedMemoryHandle(size, format, usage); | 
 |  35   if (handle.is_null()) | 
 |  36     return nullptr; | 
 |  37  | 
 |  38   std::unique_ptr<GpuMemoryBufferImpl> buffer = | 
 |  39       GpuMemoryBufferImpl::CreateFromHandle( | 
 |  40           handle, size, format, usage, | 
 |  41           base::Bind(&ClientGpuMemoryBufferManager::DeletedGpuMemoryBuffer, | 
 |  42                      this, handle.id)); | 
 |  43   if (!buffer) { | 
 |  44     DeletedGpuMemoryBuffer(handle.id, SyncToken()); | 
 |  45     return nullptr; | 
 |  46   } | 
 |  47  | 
 |  48   return std::move(buffer); | 
 |  49 } | 
 |  50  | 
 |  51 std::unique_ptr<gfx::GpuMemoryBuffer> | 
 |  52 ClientGpuMemoryBufferManager::CreateGpuMemoryBufferFromHandle( | 
 |  53     const gfx::GpuMemoryBufferHandle& handle, | 
 |  54     const gfx::Size& size, | 
 |  55     gfx::BufferFormat format) { | 
 |  56   NOTIMPLEMENTED(); | 
 |  57   return nullptr; | 
 |  58 } | 
 |  59  | 
 |  60 gfx::GpuMemoryBuffer* | 
 |  61 ClientGpuMemoryBufferManager::GpuMemoryBufferFromClientBuffer( | 
 |  62     ClientBuffer buffer) { | 
 |  63   return GpuMemoryBufferImpl::FromClientBuffer(buffer); | 
 |  64 } | 
 |  65  | 
 |  66 void ClientGpuMemoryBufferManager::SetDestructionSyncToken( | 
 |  67     gfx::GpuMemoryBuffer* buffer, | 
 |  68     const SyncToken& sync_token) { | 
 |  69   static_cast<GpuMemoryBufferImpl*>(buffer)->set_destruction_sync_token( | 
 |  70       sync_token); | 
 |  71 } | 
 |  72  | 
 |  73 void ClientGpuMemoryBufferManager::DeletedGpuMemoryBuffer( | 
 |  74     gfx::GpuMemoryBufferId id, | 
 |  75     const SyncToken& token) { | 
 |  76   DCHECK(delegate_); | 
 |  77   delegate_->DeletedGpuMemoryBuffer(id, token); | 
 |  78 } | 
 |  79  | 
 |  80 }  // namespace gpu | 
| OLD | NEW |