• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# OH_NativeImage
2
3
4## 概述
5
6提供NativeImage功能,作为数据消费者,主要用来将数据和OpenGL纹理对接,需在OpenGL环境下使用。
7
8**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
9
10**起始版本:** 9
11
12
13## 汇总
14
15
16### 文件
17
18| 名称 | 描述 |
19| -------- | -------- |
20| [native_image.h](native__image_8h.md) | 定义获取和使用NativeImage的相关函数。 |
21
22
23### 结构体
24
25| 名称 | 描述 |
26| -------- | -------- |
27| [OH_OnFrameAvailableListener](_o_h___on_frame_available_listener.md) | 一个OH_NativeImage的监听者,通过OH_NativeImage_SetOnFrameAvailableListener接口注册, 该监听结构体当有帧可用时,将触发回调。 |
28
29
30### 类型定义
31
32| 名称 | 描述 |
33| -------- | -------- |
34| [OH_NativeImage](#oh_nativeimage) | 提供OH_NativeImage结构体声明。 |
35| [OHNativeWindow](#ohnativewindow) | typedef struct NativeWindow<br/>提供对NativeWindow结构体声明。 |
36| [OH_OnFrameAvailable](#oh_onframeavailable) | 有buffer可获取时触发的回调函数。 |
37| [OH_OnFrameAvailableListener](#oh_onframeavailablelistener) | 一个OH_NativeImage的监听者,通过[OH_NativeImage_SetOnFrameAvailableListener](#oh_nativeimage_setonframeavailablelistener)接口注册, 该监听结构体,当有buffer可获取时,将触发回调给用户。 |
38
39
40### 函数
41
42| 名称 | 描述 |
43| -------- | -------- |
44| [OH_NativeImage_Create](#oh_nativeimage_create) (uint32_t textureId, uint32_t textureTarget) | 创建一个**OH_NativeImage**实例,该实例与OpenGL ES的纹理ID和纹理目标相关联。 |
45| [OH_NativeImage_AcquireNativeWindow](#oh_nativeimage_acquirenativewindow) ([OH_NativeImage](#oh_nativeimage) \*image) | 获取与OH_NativeImage相关联的OHNativeWindow指针。 该OHNativeWindow后续不再需要时需要调用<br/>OH_NativeWindow_DestroyNativeWindow释放。 |
46| [OH_NativeImage_AttachContext](#oh_nativeimage_attachcontext) ([OH_NativeImage](#oh_nativeimage) \*image, uint32_t textureId) | 将OH_NativeImage实例附加到当前OpenGL ES上下文, 且该OpenGL ES纹理会绑定到<br/>GL_TEXTURE_EXTERNAL_OES, 并通过OH_NativeImage进行更新。 |
47| [OH_NativeImage_DetachContext](#oh_nativeimage_detachcontext) ([OH_NativeImage](#oh_nativeimage) \*image) | 将OH_NativeImage实例从当前OpenGL ES上下文分离。 |
48| [OH_NativeImage_UpdateSurfaceImage](#oh_nativeimage_updatesurfaceimage) ([OH_NativeImage](#oh_nativeimage) \*image) | 通过OH_NativeImage获取最新帧更新相关联的OpenGL ES纹理。 |
49| [OH_NativeImage_GetTimestamp](#oh_nativeimage_gettimestamp) ([OH_NativeImage](#oh_nativeimage) \*image) | 获取最近调用OH_NativeImage_UpdateSurfaceImage的纹理图像的相关时间戳。 |
50| [OH_NativeImage_GetTransformMatrix](#oh_nativeimage_gettransformmatrix) ([OH_NativeImage](#oh_nativeimage) \*image, float matrix[16]) | 获取最近调用OH_NativeImage_UpdateSurfaceImage的纹理图像的变化矩阵。 |
51| [OH_NativeImage_GetSurfaceId](#oh_nativeimage_getsurfaceid) ([OH_NativeImage](#oh_nativeimage) \*image, uint64_t \*surfaceId) | 获取OH_NativeImage的surface编号。 |
52| [OH_NativeImage_SetOnFrameAvailableListener](#oh_nativeimage_setonframeavailablelistener) ([OH_NativeImage](#oh_nativeimage) \*image, [OH_OnFrameAvailableListener](_o_h___on_frame_available_listener.md) listener) | 设置帧可用回调。 |
53| [OH_NativeImage_UnsetOnFrameAvailableListener](#oh_nativeimage_unsetonframeavailablelistener) ([OH_NativeImage](#oh_nativeimage) \*image) | 取消设置帧可用回调。 |
54| [OH_NativeImage_Destroy](#oh_nativeimage_destroy) ([OH_NativeImage](#oh_nativeimage) \*\*image) | 销毁通过OH_NativeImage_Create创建的**OH_NativeImage**实例, 销毁后该**OH_NativeImage**指针会被赋值为空。 |
55
56
57## 类型定义说明
58
59
60### OH_NativeImage
61
62```
63typedef struct OH_NativeImageOH_NativeImage
64```
65
66**描述**
67
68提供OH_NativeImage结构体声明。
69
70**起始版本:** 9
71
72
73### OH_OnFrameAvailable
74
75```
76typedef void(* OH_OnFrameAvailable) (void *context)
77```
78
79**描述**
80
81有buffer可获取时触发的回调函数。
82
83**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
84
85**起始版本:** 11
86
87**参数:**
88
89| 名称 | 描述 |
90| -------- | -------- |
91| context | 用户自定义的上下文信息,会在回调触发时返回给用户。 |
92
93
94### OH_OnFrameAvailableListener
95
96```
97typedef struct OH_OnFrameAvailableListener OH_OnFrameAvailableListener
98```
99
100**描述**
101
102一个OH_NativeImage的监听者,通过[OH_NativeImage_SetOnFrameAvailableListener](#oh_nativeimage_setonframeavailablelistener)接口注册, 该监听结构体,当有buffer可获取时,将触发回调给用户。
103
104**起始版本:** 11
105
106
107### OHNativeWindow
108
109```
110typedef struct NativeWindow OHNativeWindow
111```
112
113**描述**
114
115提供对NativeWindow的访问功能。
116
117**起始版本:** 9
118
119
120## 函数说明
121
122
123### OH_NativeImage_AcquireNativeWindow()
124
125```
126OHNativeWindow* OH_NativeImage_AcquireNativeWindow (OH_NativeImage * image)
127```
128
129**描述**
130
131获取与OH_NativeImage相关联的OHNativeWindow指针. 该OHNativeWindow后续不再需要时需要调用
132
133OH_NativeWindow_DestroyNativeWindow释放。
134
135**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
136
137**起始版本:** 9
138
139**参数:**
140
141| 名称 | 描述 |
142| -------- | -------- |
143| image | 是指向**OH_NativeImage**实例的指针。 |
144
145**返回:**
146
147成功则返回一个指向OHNativeWindow实例的指针,否则返回**NULL**。
148
149
150### OH_NativeImage_AttachContext()
151
152```
153int32_t OH_NativeImage_AttachContext (OH_NativeImage * image, uint32_t textureId )
154```
155
156**描述**
157
158将OH_NativeImage实例附加到当前OpenGL ES上下文, 且该OpenGL ES纹理会绑定到
159
160GL_TEXTURE_EXTERNAL_OES, 并通过OH_NativeImage进行更新。
161
162**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
163
164**起始版本:** 9
165
166**参数:**
167
168| 名称 | 描述 |
169| -------- | -------- |
170| image | 是指向**OH_NativeImage**实例的指针。 |
171| textureId | 是OH_NativeImage要附加到的OpenGL ES纹理的id。 |
172
173**返回:**
174
175返回值为0表示执行成功。
176
177
178### OH_NativeImage_Create()
179
180```
181OH_NativeImage* OH_NativeImage_Create (uint32_t textureId, uint32_t textureTarget )
182```
183
184**描述**
185
186创建一个**OH_NativeImage**实例,该实例与OpenGL ES的纹理ID和纹理目标相关联。
187
188**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
189
190**起始版本:** 9
191
192**参数:**
193
194| 名称 | 描述 |
195| -------- | -------- |
196| textureId | OpenGL ES的纹理ID,OH_NativeImage实例会与之相关联。 |
197| textureTarget | OpenGL ES的纹理目标。 |
198
199**返回:**
200
201返回一个指向**OH_NativeImage**实例的指针 returns **NULL** otherwise。
202
203
204### OH_NativeImage_Destroy()
205
206```
207void OH_NativeImage_Destroy (OH_NativeImage ** image)
208```
209
210**描述**
211
212销毁通过OH_NativeImage_Create创建的**OH_NativeImage**实例, 销毁后该
213
214**OH_NativeImage**指针会被赋值为空。
215
216**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
217
218**起始版本:** 9
219
220**参数:**
221
222| 名称 | 描述 |
223| -------- | -------- |
224| image | 是指向**OH_NativeImage**实例的指针。 |
225
226
227### OH_NativeImage_DetachContext()
228
229```
230int32_t OH_NativeImage_DetachContext (OH_NativeImage * image)
231```
232
233**描述**
234
235将OH_NativeImage实例从当前OpenGL ES上下文分离。
236
237**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
238
239**起始版本:** 9
240
241**参数:**
242
243| 名称 | 描述 |
244| -------- | -------- |
245| image | 是指向**OH_NativeImage**实例的指针。 |
246
247**返回:**
248
249返回值为0表示执行成功。
250
251
252### OH_NativeImage_GetSurfaceId()
253
254```
255int32_t OH_NativeImage_GetSurfaceId (OH_NativeImage * image, uint64_t * surfaceId )
256```
257
258**描述**
259
260获取OH_NativeImage的surface编号。
261
262**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
263
264**起始版本:** 11
265
266**参数:**
267
268| 名称 | 描述 |
269| -------- | -------- |
270| image | 是指向**OH_NativeImage**实例的指针。 |
271| surfaceId | 是指向surface编号的指针。 |
272
273**返回:**
274
275返回值为0表示执行成功。
276
277
278### OH_NativeImage_GetTimestamp()
279
280```
281int64_t OH_NativeImage_GetTimestamp (OH_NativeImage * image)
282```
283
284**描述**
285
286获取最近调用OH_NativeImage_UpdateSurfaceImage的纹理图像的相关时间戳。
287
288**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
289
290**起始版本:** 9
291
292**参数:**
293
294| 名称 | 描述 |
295| -------- | -------- |
296| image | 是指向**OH_NativeImage**实例的指针。 |
297
298**返回:**
299
300返回纹理图像的相关时间戳。
301
302
303### OH_NativeImage_GetTransformMatrix()
304
305```
306int32_t OH_NativeImage_GetTransformMatrix (OH_NativeImage * image, float matrix[16] )
307```
308
309**描述**
310
311获取最近调用OH_NativeImage_UpdateSurfaceImage的纹理图像的变化矩阵。
312
313**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
314
315**起始版本:** 9
316
317**参数:**
318
319| 名称 | 描述 |
320| -------- | -------- |
321| image | 是指向**OH_NativeImage**实例的指针。 |
322| matrix | 用来存储要获取的4\*4的变化矩阵。 |
323
324**返回:**
325
326返回值为0表示执行成功。
327
328
329### OH_NativeImage_SetOnFrameAvailableListener()
330
331```
332int32_t OH_NativeImage_SetOnFrameAvailableListener (OH_NativeImage * image, OH_OnFrameAvailableListener listener )
333```
334
335**描述**
336
337设置帧可用回调。
338
339**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
340
341**起始版本:** 11
342
343**参数:**
344
345| 名称 | 描述 |
346| -------- | -------- |
347| image | 是指向**OH_NativeImage**实例的指针。 |
348| listener | 表示回调监听者。 |
349
350**返回:**
351
352返回值为0表示执行成功。
353
354
355### OH_NativeImage_UnsetOnFrameAvailableListener()
356
357```
358int32_t OH_NativeImage_UnsetOnFrameAvailableListener (OH_NativeImage * image)
359```
360
361**描述**
362
363取消设置帧可用回调。
364
365**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
366
367**起始版本:** 11
368
369**参数:**
370
371| 名称 | 描述 |
372| -------- | -------- |
373| image | 是指向**OH_NativeImage**实例的指针。 |
374
375**返回:**
376
377返回值为0表示执行成功。
378
379
380### OH_NativeImage_UpdateSurfaceImage()
381
382```
383int32_t OH_NativeImage_UpdateSurfaceImage (OH_NativeImage * image)
384```
385
386**描述**
387
388通过OH_NativeImage获取最新帧更新相关联的OpenGL ES纹理。
389
390**系统能力:** SystemCapability.Graphic.Graphic2D.NativeImage
391
392**起始版本:** 9
393
394**参数:**
395
396| 名称 | 描述 |
397| -------- | -------- |
398| image | 是指向**OH_NativeImage**实例的指针。 |
399
400**返回:**
401
402返回值为0表示执行成功。
403