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