• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# OH_NativeBuffer
2
3
4## 概述
5
6提供NativeBuffer功能,通过提供的接口,可以实现共享内存的申请、使用、属性查询、释放等操作。
7
8\@syscap SystemCapability.Graphic.Graphic2D.NativeBuffer
9
10**起始版本:**
11
129
13
14
15## 汇总
16
17
18### 文件
19
20| 名称 | 描述 |
21| -------- | -------- |
22| [native_buffer.h](native__buffer_8h.md) | 定义获取和使用NativeBuffer的相关函数。<br/>**引用文件:** &lt;native_buffer/native_buffer.h&gt; <br/>**库:** libnative_buffer.so|
23
24
25### 结构体
26
27| 名称 | 描述 |
28| -------- | -------- |
29| [OH_NativeBuffer_Config](_o_h___native_buffer___config.md) | OH_NativeBuffer的属性配置,用于申请新的OH_NativeBuffer实例或查询现有实例的相关属性。 |
30
31
32### 类型定义
33
34| 名称 | 描述 |
35| -------- | -------- |
36| [OH_NativeBuffer](#oh_nativebuffer) | 提供OH_NativeBuffer结构体声明。 |
37
38### 枚举
39
40| 名称 | 描述 |
41| -------- | -------- |
42| [OH_NativeBuffer_Usage](#oh_nativebuffer_usage) { NATIVEBUFFER_USAGE_CPU_READ = (1ULL &lt;&lt; 0), NATIVEBUFFER_USAGE_CPU_WRITE = (1ULL &lt;&lt; 1), NATIVEBUFFER_USAGE_MEM_DMA = (1ULL &lt;&lt; 3) } | OH_NativeBuffer的用途。 |
43| [OH_NativeBuffer_Format](#oh_nativebuffer_format) {<br/>NATIVEBUFFER_PIXEL_FMT_RGB_565 = 3, NATIVEBUFFER_PIXEL_FMT_RGBA_5658, NATIVEBUFFER_PIXEL_FMT_RGBX_4444, NATIVEBUFFER_PIXEL_FMT_RGBA_4444,<br/>NATIVEBUFFER_PIXEL_FMT_RGB_444, NATIVEBUFFER_PIXEL_FMT_RGBX_5551, NATIVEBUFFER_PIXEL_FMT_RGBA_5551, NATIVEBUFFER_PIXEL_FMT_RGB_555,<br/>NATIVEBUFFER_PIXEL_FMT_RGBX_8888, NATIVEBUFFER_PIXEL_FMT_RGBA_8888, NATIVEBUFFER_PIXEL_FMT_RGB_888, NATIVEBUFFER_PIXEL_FMT_BGR_565,<br/>NATIVEBUFFER_PIXEL_FMT_BGRX_4444, NATIVEBUFFER_PIXEL_FMT_BGRA_4444, NATIVEBUFFER_PIXEL_FMT_BGRX_5551, NATIVEBUFFER_PIXEL_FMT_BGRA_5551,<br/>NATIVEBUFFER_PIXEL_FMT_BGRX_8888, NATIVEBUFFER_PIXEL_FMT_BGRA_8888, NATIVEBUFFER_PIXEL_FMT_BUTT = 0X7FFFFFFF<br/>} | OH_NativeBuffer的格式。 |
44
45### 函数
46
47| 名称 | 描述 |
48| -------- | -------- |
49| [OH_NativeBuffer_Alloc](#oh_nativebuffer_alloc) (const [OH_NativeBuffer_Config](_o_h___native_buffer___config.md) \*config) | 通过OH_NativeBuffer_Config创建OH_NativeBuffer实例,每次调用都会产生一个新的OH_NativeBuffer实例。 |
50| [OH_NativeBuffer_Reference](#oh_nativebuffer_reference) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer) | 将OH_NativeBuffer对象的引用计数加1。 |
51| [OH_NativeBuffer_Unreference](#oh_nativebuffer_unreference) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer) | 将OH_NativeBuffer对象的引用计数减1,当引用计数为0的时候,该NativeBuffer对象会被析构掉。 |
52| [OH_NativeBuffer_GetConfig](#oh_nativebuffer_getconfig) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer, [OH_NativeBuffer_Config](_o_h___native_buffer___config.md) \*config) | 用于获取OH_NativeBuffer的属性。 |
53| [OH_NativeBuffer_Map](#oh_nativebuffer_map) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer, void \*\*virAddr) | 将OH_NativeBuffer对应的ION内存映射到进程空间。 |
54| [OH_NativeBuffer_Unmap](#oh_nativebuffer_unmap) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer) | 将OH_NativeBuffer对应的ION内存从进程空间移除。 |
55| [OH_NativeBuffer_GetSeqNum](#oh_nativebuffer_getseqnum) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer) | 获取OH_NativeBuffer的序列号。 |
56
57
58## 类型定义说明
59
60
61### OH_NativeBuffer
62
63
64```
65typedef struct OH_NativeBuffer OH_NativeBuffer
66```
67
68**描述:**
69
70提供OH_NativeBuffer结构体声明。
71
72## 枚举类型说明
73
74
75### OH_NativeBuffer_Format
76
77```
78enum OH_NativeBuffer_Format
79```
80
81**描述:**
82
83OH_NativeBuffer的格式。
84
85\@SysCap SystemCapability.Graphic.Graphic2D.NativeBuffer
86
87| 枚举值 | 描述 |
88| -------- | -------- |
89| NATIVEBUFFER_PIXEL_FMT_RGB_565 | RGB565格式 |
90| NATIVEBUFFER_PIXEL_FMT_RGBA_5658 | RGBA5658格式 |
91| NATIVEBUFFER_PIXEL_FMT_RGBX_4444 | RGBX4444格式 |
92| NATIVEBUFFER_PIXEL_FMT_RGBA_4444 | RGBA4444格式 |
93| NATIVEBUFFER_PIXEL_FMT_RGB_444 | RGB444格式 |
94| NATIVEBUFFER_PIXEL_FMT_RGBX_5551 | RGBX5551格式 |
95| NATIVEBUFFER_PIXEL_FMT_RGBA_5551 | RGBA5551格式 |
96| NATIVEBUFFER_PIXEL_FMT_RGB_555 | RGB555格式 |
97| NATIVEBUFFER_PIXEL_FMT_RGBX_8888 | RGBX8888格式 |
98| NATIVEBUFFER_PIXEL_FMT_RGBA_8888 | RGBA8888格式 |
99| NATIVEBUFFER_PIXEL_FMT_RGB_888 | RGB888格式 |
100| NATIVEBUFFER_PIXEL_FMT_BGR_565 | BGR565格式 |
101| NATIVEBUFFER_PIXEL_FMT_BGRX_4444 | BGRX4444格式 |
102| NATIVEBUFFER_PIXEL_FMT_BGRA_4444 | BGRA4444格式 |
103| NATIVEBUFFER_PIXEL_FMT_BGRX_5551 | BGRX5551格式 |
104| NATIVEBUFFER_PIXEL_FMT_BGRA_5551 | BGRA5551格式 |
105| NATIVEBUFFER_PIXEL_FMT_BGRX_8888 | BGRX8888格式 |
106| NATIVEBUFFER_PIXEL_FMT_BGRA_8888 | BGRA8888格式 |
107| NATIVEBUFFER_PIXEL_FMT_BUTT | 无效格式 |
108
109**起始版本:**
110
11110
112
113
114### OH_NativeBuffer_Usage
115
116```
117enum OH_NativeBuffer_Usage
118```
119
120**描述:**
121
122OH_NativeBuffer的用途。
123
124\@SysCap SystemCapability.Graphic.Graphic2D.NativeBuffer
125
126| 枚举值 | 描述 |
127| -------- | -------- |
128| NATIVEBUFFER_USAGE_CPU_READ | CPU可读 |
129| NATIVEBUFFER_USAGE_CPU_WRITE | CPU可写 |
130| NATIVEBUFFER_USAGE_MEM_DMA | 直接内存访问缓冲区 |
131
132**起始版本:**
133
13410
135
136
137## 函数说明
138
139
140### OH_NativeBuffer_Alloc()
141
142
143```
144OH_NativeBuffer* OH_NativeBuffer_Alloc (const OH_NativeBuffer_Config * config)
145```
146
147**描述:**
148
149通过OH_NativeBuffer_Config创建OH_NativeBuffer实例,每次调用都会产生一个新的OH_NativeBuffer实例。
150
151\@syscap SystemCapability.Graphic.Graphic2D.NativeBuffer
152
153**参数:**
154
155| 名称 | 描述 |
156| -------- | -------- |
157| config | 一个指向OH_NativeBuffer_Config类型的指针。 |
158
159**返回:**
160
161创建成功则返回一个指向OH_NativeBuffer结构体实例的指针,否则返回NULL。
162
163
164### OH_NativeBuffer_GetConfig()
165
166
167```
168void OH_NativeBuffer_GetConfig (OH_NativeBuffer * buffer, OH_NativeBuffer_Config * config )
169```
170
171**描述:**
172
173用于获取OH_NativeBuffer的属性。
174
175\@syscap SystemCapability.Graphic.Graphic2D.NativeBuffer
176
177**参数:**
178
179| 名称 | 描述 |
180| -------- | -------- |
181| buffer | 一个指向OH_NativeBuffer实例的指针。 |
182| config | 一个指向OH_NativeBuffer_Config的指针,用于接收OH_NativeBuffer的属性。 |
183
184
185### OH_NativeBuffer_GetSeqNum()
186
187
188```
189uint32_t OH_NativeBuffer_GetSeqNum (OH_NativeBuffer * buffer)
190```
191
192**描述:**
193
194获取OH_NativeBuffer的序列号。
195
196\@syscap SystemCapability.Graphic.Graphic2D.NativeBuffer
197
198**参数:**
199
200| 名称 | 描述 |
201| -------- | -------- |
202| buffer | 一个指向OH_NativeBuffer实例的指针。 |
203
204**返回:**
205
206返回对应OH_NativeBuffer的唯一序列号。
207
208
209### OH_NativeBuffer_Map()
210
211
212```
213int32_t OH_NativeBuffer_Map (OH_NativeBuffer * buffer, void ** virAddr )
214```
215
216**描述:**
217
218将OH_NativeBuffer对应的ION内存映射到进程空间。
219
220\@syscap SystemCapability.Graphic.Graphic2D.NativeBuffer
221
222**参数:**
223
224| 名称 | 描述 |
225| -------- | -------- |
226| buffer | 一个指向OH_NativeBuffer实例的指针。 |
227| virAddr | 一个二级指针,二级指针指向映射到当前进程的虚拟内存的地址。 |
228
229**返回:**
230
231返回值为0表示执行成功。
232
233
234### OH_NativeBuffer_Reference()
235
236
237```
238int32_t OH_NativeBuffer_Reference (OH_NativeBuffer * buffer)
239```
240
241**描述:**
242
243将OH_NativeBuffer对象的引用计数加1。
244
245\@syscap SystemCapability.Graphic.Graphic2D.NativeBuffer
246
247**参数:**
248
249| 名称 | 描述 |
250| -------- | -------- |
251| buffer | 一个指向OH_NativeBuffer实例的指针。 |
252
253**返回:**
254
255返回值为0表示执行成功。
256
257
258### OH_NativeBuffer_Unmap()
259
260
261```
262int32_t OH_NativeBuffer_Unmap (OH_NativeBuffer * buffer)
263```
264
265**描述:**
266
267将OH_NativeBuffer对应的ION内存从进程空间移除。
268
269\@syscap SystemCapability.Graphic.Graphic2D.NativeBuffer
270
271**参数:**
272
273| 名称 | 描述 |
274| -------- | -------- |
275| buffer | 一个指向OH_NativeBuffer实例的指针。 |
276
277**返回:**
278
279返回值为0表示执行成功。
280
281
282### OH_NativeBuffer_Unreference()
283
284
285```
286int32_t OH_NativeBuffer_Unreference (OH_NativeBuffer * buffer)
287```
288
289**描述:**
290
291将OH_NativeBuffer对象的引用计数减1,当引用计数为0的时候,该NativeBuffer对象会被析构掉。
292
293\@syscap SystemCapability.Graphic.Graphic2D.NativeBuffer
294
295**参数:**
296
297| 名称 | 描述 |
298| -------- | -------- |
299| buffer | 一个指向OH_NativeBuffer实例的指针。 |
300
301**返回:**
302
303返回值为0表示执行成功。
304