OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef UI_OZONE_PUBLIC_NATIVE_PIXMAP_MANAGER_H_ | 5 #ifndef UI_OZONE_PUBLIC_NATIVE_PIXMAP_MANAGER_H_ |
6 #define UI_OZONE_PUBLIC_NATIVE_PIXMAP_MANAGER_H_ | 6 #define UI_OZONE_PUBLIC_NATIVE_PIXMAP_MANAGER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "ui/ozone/ozone_export.h" | 10 #include "ui/ozone/ozone_export.h" |
| 11 #include "ui/ozone/public/native_pixmap.h" |
11 #include "ui/ozone/public/surface_factory_ozone.h" | 12 #include "ui/ozone/public/surface_factory_ozone.h" |
12 | 13 |
13 namespace base { | 14 namespace base { |
14 | 15 |
15 struct FileDescriptor; | 16 struct FileDescriptor; |
16 | 17 |
17 } // namespace base | 18 } // namespace base |
18 | 19 |
19 namespace ui { | 20 namespace ui { |
20 | 21 |
(...skipping 12 matching lines...) Expand all Loading... |
33 | 34 |
34 struct Configuration { | 35 struct Configuration { |
35 SurfaceFactoryOzone::BufferFormat format; | 36 SurfaceFactoryOzone::BufferFormat format; |
36 SurfaceFactoryOzone::BufferUsage usage; | 37 SurfaceFactoryOzone::BufferUsage usage; |
37 }; | 38 }; |
38 | 39 |
39 // Gets supported format/usage configurations. | 40 // Gets supported format/usage configurations. |
40 virtual std::vector<Configuration> GetSupportedNativePixmapConfigurations() | 41 virtual std::vector<Configuration> GetSupportedNativePixmapConfigurations() |
41 const = 0; | 42 const = 0; |
42 | 43 |
| 44 // Create a single native buffer from |handle| to be used for zero copy in |
| 45 // Browser or Render process. |
| 46 virtual scoped_refptr<NativePixmap> CreateFromFileDescriptor( |
| 47 base::FileDescriptor handle, |
| 48 gfx::Size size, |
| 49 SurfaceFactoryOzone::BufferFormat format, |
| 50 SurfaceFactoryOzone::BufferUsage usage) = 0; |
| 51 |
43 protected: | 52 protected: |
44 NativePixmapManager(); | 53 NativePixmapManager(); |
45 | 54 |
46 virtual void Initialize(const base::FileDescriptor& device_fd) = 0; | 55 virtual void Initialize(const base::FileDescriptor& device_fd) = 0; |
47 | 56 |
48 private: | 57 private: |
49 DISALLOW_COPY_AND_ASSIGN(NativePixmapManager); | 58 DISALLOW_COPY_AND_ASSIGN(NativePixmapManager); |
50 }; | 59 }; |
51 | 60 |
52 // Platforms which don't need to share native pixmap use this. | 61 // Platforms which don't need to share native pixmap use this. |
53 NativePixmapManager* CreateStubNativePixmapManager(); | 62 NativePixmapManager* CreateStubNativePixmapManager(); |
54 | 63 |
55 } // namespace ui | 64 } // namespace ui |
56 | 65 |
57 #endif // UI_OZONE_PUBLIC_NATIVE_PIXMAP_MANAGER_H_ | 66 #endif // UI_OZONE_PUBLIC_NATIVE_PIXMAP_MANAGER_H_ |
OLD | NEW |