Chromium Code Reviews| Index: content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc |
| diff --git a/content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc b/content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc |
| index c7030d1b66b02dffe8d6d7d2751ea1ddd3c69cb2..77c230068f78a93a719301e149d41bb8a8fe026f 100644 |
| --- a/content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc |
| +++ b/content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc |
| @@ -71,8 +71,23 @@ GpuMemoryBufferFactoryOzoneNativePixmap::CreateGpuMemoryBufferFromHandle( |
| const gfx::Size& size, |
| gfx::BufferFormat format, |
| int client_id) { |
| - NOTIMPLEMENTED(); |
| - return gfx::GpuMemoryBufferHandle(); |
| + scoped_refptr<ui::NativePixmap> pixmap = |
| + ui::OzonePlatform::GetInstance() |
| + ->GetSurfaceFactoryOzone() |
| + ->CreateNativePixmapFromHandle(handle.native_pixmap_handle); |
| + if (!pixmap.get()) { |
| + LOG(ERROR) << "Failed to create pixmap from handle"; |
|
piman
2015/10/08 23:24:36
nit: DLOG?
reveman
2015/10/09 12:47:02
Done. Here and above for consistency.
|
| + return gfx::GpuMemoryBufferHandle(); |
| + } |
| + |
| + { |
| + base::AutoLock lock(native_pixmaps_lock_); |
| + NativePixmapMapKey key(id.id, client_id); |
| + DCHECK(native_pixmaps_.find(key) == native_pixmaps_.end()); |
| + native_pixmaps_[key] = pixmap; |
| + } |
| + |
| + return handle; |
| } |
| void GpuMemoryBufferFactoryOzoneNativePixmap::DestroyGpuMemoryBuffer( |