• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# OH_NativeImage
2
3
4## 概述
5
6提供NativeImage功能,作为数据消费者,主要用来将数据和OpenGL纹理对接,需在OpenGL环境下使用
7
8\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeImage
9
10**起始版本:**
11
129
13
14
15## 汇总
16
17
18### 文件
19
20| 名称 | 描述 |
21| -------- | -------- |
22| [native_image.h](native__image_8h.md) | 定义获取和使用NativeImage的相关函数<br/>引用文件:&lt;native_image/native_image.h&gt; |
23
24
25### 类型定义
26
27| 名称 | 描述 |
28| -------- | -------- |
29| [OH_NativeImage](#oh_nativeimage) | 提供OH_NativeImage结构体声明 |
30| [OHNativeWindow](#ohnativewindow) | 提供对NativeWindow的访问功能 |
31
32
33### 函数
34
35| 名称 | 描述 |
36| -------- | -------- |
37| [OH_NativeImage_Create](#oh_nativeimage_create) (uint32_t textureId, uint32_t textureTarget) | 创建一个**OH_NativeImage**实例,该实例与OpenGL ES的纹理ID和纹理目标相关联 |
38| [OH_NativeImage_AcquireNativeWindow](#oh_nativeimage_acquirenativewindow) (OH_NativeImage \*image) | 获取与OH_NativeImage相关联的OHNativeWindow指针. 该OHNativeWindow后续不再需要时需要调用<br/>OH_NativeWindow_DestroyNativeWindow释放 |
39| [OH_NativeImage_AttachContext](#oh_nativeimage_attachcontext) (OH_NativeImage \*image, uint32_t textureId) | 将OH_NativeImage实例附加到当前OpenGL ES上下文, 且该OpenGL ES纹理会绑定到<br/>GL_TEXTURE_EXTERNAL_OES, 并通过OH_NativeImage进行更新 |
40| [OH_NativeImage_DetachContext](#oh_nativeimage_detachcontext) (OH_NativeImage \*image) | 将OH_NativeImage实例从当前OpenGL ES上下文分离 |
41| [OH_NativeImage_UpdateSurfaceImage](#oh_nativeimage_updatesurfaceimage) (OH_NativeImage \*image) | 通过OH_NativeImage获取最新帧更新相关联的OpenGL ES纹理 |
42| [OH_NativeImage_GetTimestamp](#oh_nativeimage_gettimestamp) (OH_NativeImage*image) | 获取最近调用OH_NativeImage_UpdateSurfaceImage的纹理图像的相关时间戳 |
43| [OH_NativeImage_GetTransformMatrix](#oh_nativeimage_gettransformmatrix) (OH_NativeImage \*image, float matrix[16]) | 获取最近调用OH_NativeImage_UpdateSurfaceImage的纹理图像的变化矩阵 |
44| [OH_NativeImage_Destroy](#oh_nativeimage_destroy) (OH_NativeImage \*\*image) | 销毁通过OH_NativeImage_Create创建的**OH_NativeImage**实例, 销毁后该<br/>**OH_NativeImage**指针会被赋值为空 |
45
46
47## 类型定义说明
48
49
50### OH_NativeImage
51
52
53```
54typedef struct OH_NativeImage OH_NativeImage
55```
56
57**描述:**
58
59提供OH_NativeImage结构体声明
60
61
62### OHNativeWindow
63
64
65```
66typedef struct NativeWindow OHNativeWindow
67```
68
69**描述:**
70
71提供对NativeWindow的访问功能
72
73
74## 函数说明
75
76
77### OH_NativeImage_AcquireNativeWindow()
78
79
80```
81OHNativeWindow* OH_NativeImage_AcquireNativeWindow (OH_NativeImage * image)
82```
83
84**描述:**
85
86获取与OH_NativeImage相关联的OHNativeWindow指针. 该OHNativeWindow后续不再需要时需要调用
87
88OH_NativeWindow_DestroyNativeWindow释放
89
90\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeImage
91
92**参数:**
93
94| 名称 | 描述 |
95| -------- | -------- |
96| image | 指向OH_NativeImage实例的指针。 |
97
98**返回:**
99
100成功则返回一个指向OHNativeWindow实例的指针,否则返回**NULL**
101
102
103### OH_NativeImage_AttachContext()
104
105
106```
107int32_t OH_NativeImage_AttachContext (OH_NativeImage * image, uint32_t textureId )
108```
109
110**描述:**
111
112将OH_NativeImage实例附加到当前OpenGL ES上下文, 且该OpenGL ES纹理会绑定到
113
114GL_TEXTURE_EXTERNAL_OES, 并通过OH_NativeImage进行更新
115
116\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeImage
117
118**参数:**
119
120| 名称 | 描述 |
121| -------- | -------- |
122| image | 指向OH_NativeImage实例的指针。 |
123| textureId | OH_NativeImage要附加到的OpenGL ES纹理的id。 |
124
125**返回:**
126
127返回值为0表示执行成功
128
129
130### OH_NativeImage_Create()
131
132
133```
134OH_NativeImage* OH_NativeImage_Create (uint32_t textureId, uint32_t textureTarget )
135```
136
137**描述:**
138
139创建一个**OH_NativeImage**实例,该实例与OpenGL ES的纹理ID和纹理目标相关联
140
141\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeImage
142
143**参数:**
144
145| 名称 | 描述 |
146| -------- | -------- |
147| textureId | OpenGL ES的纹理ID,OH_NativeImage实例会与之相关联 |
148| textureTarget | OpenGL ES的纹理目标 |
149
150**返回:**
151
152返回一个指向**OH_NativeImage**实例的指针 returns **NULL** otherwise
153
154
155### OH_NativeImage_Destroy()
156
157
158```
159void OH_NativeImage_Destroy (OH_NativeImage ** image)
160```
161
162**描述:**
163
164销毁通过OH_NativeImage_Create创建的**OH_NativeImage**实例, 销毁后该
165
166**OH_NativeImage**指针会被赋值为空
167
168\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeImage
169
170**参数:**
171
172| 名称 | 描述 |
173| -------- | -------- |
174| image | 指向OH_NativeImage实例的指针。 |
175
176
177### OH_NativeImage_DetachContext()
178
179
180```
181int32_t OH_NativeImage_DetachContext (OH_NativeImage * image)
182```
183
184**描述:**
185
186将OH_NativeImage实例从当前OpenGL ES上下文分离
187
188\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeImage
189
190**参数:**
191
192| 名称 | 描述 |
193| -------- | -------- |
194| image | 指向OH_NativeImage实例的指针。 |
195
196**返回:**
197
198返回值为0表示执行成功
199
200
201### OH_NativeImage_GetTimestamp()
202
203
204```
205int64_t OH_NativeImage_GetTimestamp (OH_NativeImage * image)
206```
207
208**描述:**
209
210获取最近调用OH_NativeImage_UpdateSurfaceImage的纹理图像的相关时间戳
211
212\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeImage
213
214**参数:**
215
216| 名称 | 描述 |
217| -------- | -------- |
218| image | 指向OH_NativeImage实例的指针。 |
219
220**返回:**
221
222返回纹理图像的相关时间戳
223
224
225### OH_NativeImage_GetTransformMatrix()
226
227
228```
229int32_t OH_NativeImage_GetTransformMatrix (OH_NativeImage * image, float matrix[16] )
230```
231
232**描述:**
233
234获取最近调用OH_NativeImage_UpdateSurfaceImage的纹理图像的变化矩阵
235
236\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeImage
237
238**参数:**
239
240| 名称 | 描述 |
241| -------- | -------- |
242| image | 指向OH_NativeImage实例的指针。 |
243| matrix | 用来存储要获取的4\*4的变化矩阵。 |
244
245**返回:**
246
247返回值为0表示执行成功
248
249
250### OH_NativeImage_UpdateSurfaceImage()
251
252
253```
254int32_t OH_NativeImage_UpdateSurfaceImage (OH_NativeImage * image)
255```
256
257**描述:**
258
259通过OH_NativeImage获取最新帧更新相关联的OpenGL ES纹理
260
261\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeImage
262
263**参数:**
264
265| 名称 | 描述 |
266| -------- | -------- |
267| image | 指向OH_NativeImage实例的指针。 |
268
269**返回:**
270
271返回值为0表示执行成功
272