Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1037)

Side by Side Diff: content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_pixmap.cc

Issue 1263323004: Add NativePixmapHandle type & interface for exporting them (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix cast build Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_pixmap.h " 5 #include "content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_pixmap.h "
6 6
7 #include "ui/ozone/public/client_native_pixmap_factory.h"
7 #include "ui/ozone/public/surface_factory_ozone.h" 8 #include "ui/ozone/public/surface_factory_ozone.h"
8 9
9 namespace content { 10 namespace content {
10 11
11 GpuMemoryBufferImplOzoneNativePixmap::GpuMemoryBufferImplOzoneNativePixmap( 12 GpuMemoryBufferImplOzoneNativePixmap::GpuMemoryBufferImplOzoneNativePixmap(
12 gfx::GpuMemoryBufferId id, 13 gfx::GpuMemoryBufferId id,
13 const gfx::Size& size, 14 const gfx::Size& size,
14 gfx::BufferFormat format, 15 gfx::BufferFormat format,
15 const DestructionCallback& callback) 16 const DestructionCallback& callback,
16 : GpuMemoryBufferImpl(id, size, format, callback) {} 17 scoped_ptr<ui::ClientNativePixmap> pixmap)
18 : GpuMemoryBufferImpl(id, size, format, callback), pixmap_(pixmap.Pass()) {}
17 19
18 GpuMemoryBufferImplOzoneNativePixmap::~GpuMemoryBufferImplOzoneNativePixmap() {} 20 GpuMemoryBufferImplOzoneNativePixmap::~GpuMemoryBufferImplOzoneNativePixmap() {}
19 21
20 // static 22 // static
21 scoped_ptr<GpuMemoryBufferImpl> 23 scoped_ptr<GpuMemoryBufferImpl>
22 GpuMemoryBufferImplOzoneNativePixmap::CreateFromHandle( 24 GpuMemoryBufferImplOzoneNativePixmap::CreateFromHandle(
23 const gfx::GpuMemoryBufferHandle& handle, 25 const gfx::GpuMemoryBufferHandle& handle,
24 const gfx::Size& size, 26 const gfx::Size& size,
25 gfx::BufferFormat format, 27 gfx::BufferFormat format,
26 gfx::BufferUsage usage, 28 gfx::BufferUsage usage,
27 const DestructionCallback& callback) { 29 const DestructionCallback& callback) {
28 return make_scoped_ptr<GpuMemoryBufferImpl>( 30 scoped_ptr<ui::ClientNativePixmap> native_pixmap =
31 ui::ClientNativePixmapFactory::GetInstance()->ImportFromHandle(
32 handle.native_pixmap_handle, size, format, usage);
33 DCHECK(native_pixmap);
34 return make_scoped_ptr(
29 new GpuMemoryBufferImplOzoneNativePixmap(handle.id, size, format, 35 new GpuMemoryBufferImplOzoneNativePixmap(handle.id, size, format,
30 callback)); 36 callback, native_pixmap.Pass()));
31 } 37 }
32 38
33 bool GpuMemoryBufferImplOzoneNativePixmap::Map(void** data) { 39 bool GpuMemoryBufferImplOzoneNativePixmap::Map(void** data) {
34 NOTREACHED(); 40 return pixmap_->Map(data);
35 return false;
36 } 41 }
37 42
38 void GpuMemoryBufferImplOzoneNativePixmap::Unmap() { 43 void GpuMemoryBufferImplOzoneNativePixmap::Unmap() {
39 NOTREACHED(); 44 pixmap_->Unmap();
40 } 45 }
41 46
42 void GpuMemoryBufferImplOzoneNativePixmap::GetStride(int* stride) const { 47 void GpuMemoryBufferImplOzoneNativePixmap::GetStride(int* stride) const {
43 NOTREACHED(); 48 pixmap_->GetStride(stride);
44 } 49 }
45 50
46 gfx::GpuMemoryBufferHandle GpuMemoryBufferImplOzoneNativePixmap::GetHandle() 51 gfx::GpuMemoryBufferHandle GpuMemoryBufferImplOzoneNativePixmap::GetHandle()
47 const { 52 const {
48 gfx::GpuMemoryBufferHandle handle; 53 gfx::GpuMemoryBufferHandle handle;
49 handle.type = gfx::OZONE_NATIVE_PIXMAP; 54 handle.type = gfx::OZONE_NATIVE_PIXMAP;
50 handle.id = id_; 55 handle.id = id_;
51 return handle; 56 return handle;
52 } 57 }
53 58
54 } // namespace content 59 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698