已合并
NativeImage新增接口&NativeWindow、NativeBuffer补充错误码说明 #2805
dingpy创建于 2025年11月26日
NativeImage新增接口&NativeWindow、NativeBuffer补充错误码说明 #2805
已合并
共 3 个文件变更+37-3
| @@ -417,7 +417,8 @@ int32_t OH_NativeBuffer_MapWaitFence(OH_NativeBuffer *buffer, int32_t fenceFd, v | |||
| 417 | * @param buffer 一个指向{@link OH_NativeBuffer}实例的指针。 | 417 | * @param buffer 一个指向{@link OH_NativeBuffer}实例的指针。 |
| 418 | * @param parcel 一个指向{@link OHIPCParcel}结构体实例的指针,作为出参使用。 | 418 | * @param parcel 一个指向{@link OHIPCParcel}结构体实例的指针,作为出参使用。 |
| 419 | * @return 执行成功时返回SURFACE_ERROR_OK。\n | 419 | * @return 执行成功时返回SURFACE_ERROR_OK。\n |
| 420 | - * buffer或parcel为空指针时返回NATIVE_ERROR_INVALID_ARGUMENTS。 | 420 | + * buffer或parcel为空指针时返回NATIVE_ERROR_INVALID_ARGUMENTS。\n |
| 421 | + * IPC发送失败返回SURFACE_ERROR_BINDER_ERROR。 | ||
| 421 | * @since 23 | 422 | * @since 23 |
| 422 | * @version 1.0 | 423 | * @version 1.0 |
| 423 | */ | 424 | */ |
| @@ -432,7 +433,8 @@ int32_t OH_NativeBuffer_WriteToParcel(OH_NativeBuffer* buffer, OHIPCParcel* parc | |||
| 432 | * @param parcel 一个指向{@link OHIPCParcel}的结构体实例的指针。 | 433 | * @param parcel 一个指向{@link OHIPCParcel}的结构体实例的指针。 |
| 433 | * @param buffer 一个指向{@link OH_NativeBuffer}结构体实例的二级指针,作为出参使用。 | 434 | * @param buffer 一个指向{@link OH_NativeBuffer}结构体实例的二级指针,作为出参使用。 |
| 434 | * @return 执行成功时返回SURFACE_ERROR_OK。\n | 435 | * @return 执行成功时返回SURFACE_ERROR_OK。\n |
| 435 | - * parcel或buffer为空指针时返回NATIVE_ERROR_INVALID_ARGUMENTS。 | 436 | + * parcel或buffer为空指针时返回NATIVE_ERROR_INVALID_ARGUMENTS。\n |
| 437 | + * parcel反序列化失败返回SURFACE_ERROR_ERROR。 | ||
| 436 | * @since 23 | 438 | * @since 23 |
| 437 | * @version 1.0 | 439 | * @version 1.0 |
| 438 | */ | 440 | */ |
| @@ -460,6 +460,33 @@ int32_t OH_NativeImage_GetColorSpace(OH_NativeImage* image, OH_NativeBuffer_Colo | |||
| 460 | */ | 460 | */ |
| 461 | int32_t OH_NativeImage_AcquireLatestNativeWindowBuffer(OH_NativeImage* image, | 461 | int32_t OH_NativeImage_AcquireLatestNativeWindowBuffer(OH_NativeImage* image, |
| 462 | OHNativeWindowBuffer** nativeWindowBuffer, int* fenceFd); | 462 | OHNativeWindowBuffer** nativeWindowBuffer, int* fenceFd); |
| 463 | + | ||
| 464 | +/** | ||
| 465 | + * @brief 查询与{@link OH_NativeImage}关联的纹理是否已释放。\n | ||
| 466 | + * 本接口为非线程安全类型接口。 | ||
| 467 | + * | ||
| 468 | + * @syscap SystemCapability.Graphic.Graphic2D.NativeImage | ||
| 469 | + * @param image 指向OH_NativeImage实例的指针。 | ||
| 470 | + * @param isReleased 纹理是否已释放。true表示纹理已释放,false表示纹理未释放,作为出参使用。 | ||
| 471 | + * @return 执行成功时返回NATIVE_ERROR_OK。\n | ||
| 472 | + * image或isReleased为空指针时返回NATIVE_ERROR_INVALID_ARGUMENTS。 | ||
| 473 | + * @since 23 | ||
| 474 | + * @version 1.0 | ||
| 475 | + */ | ||
| 476 | +int32_t OH_NativeImage_IsReleased(OH_NativeImage* image, bool* isReleased); | ||
| 477 | + | ||
| 478 | +/** | ||
| 479 | + * @brief 清除所有{@link OHNativeWindow}的OHNativeWindowBuffer缓存,并将{@link OH_NativeImage}从OpenGL ES上下文中分离。\n | ||
| 480 | + * 本接口为非线程安全类型接口。 | ||
| 481 | + * | ||
| 482 | + * @syscap SystemCapability.Graphic.Graphic2D.NativeImage | ||
| 483 | + * @param image 指向OH_NativeImage实例的指针。 | ||
| 484 | + * @return 执行成功时返回NATIVE_ERROR_OK。\n | ||
| 485 | + * image为空指针时返回NATIVE_ERROR_INVALID_ARGUMENTS。 | ||
| 486 | + * @since 23 | ||
| 487 | + * @version 1.0 | ||
| 488 | + */ | ||
| 489 | +int32_t OH_NativeImage_Release(OH_NativeImage* image); | ||
| 463 | #ifdef __cplusplus | 490 | #ifdef __cplusplus |
| 464 | } | 491 | } |
| 465 | #endif | 492 | #endif |
| @@ -910,7 +910,9 @@ int32_t OH_NativeWindow_PreAllocBuffers(OHNativeWindow *window, uint32_t allocBu | |||
| 910 | * @param window 一个指向OHNativeWindow的结构体实例的指针。 | 910 | * @param window 一个指向OHNativeWindow的结构体实例的指针。 |
| 911 | * @param region 一个Region结构体,表示一块脏区域,该区域有内容更新。 | 911 | * @param region 一个Region结构体,表示一块脏区域,该区域有内容更新。 |
| 912 | * @param buffer 一个指向OHNativeWindowBuffer的二级指针。 | 912 | * @param buffer 一个指向OHNativeWindowBuffer的二级指针。 |
| 913 | - * @return 返回值为0表示执行成功,其他返回值可参考{@link OHNativeErrorCode}。 | 913 | + * @return 执行成功时返回SURFACE_ERROR_OK。\n |
| 914 | + * window或buffer为空指针时返回NATIVE_ERROR_INVALID_ARGUMENTS。\n | ||
| 915 | + * window的surface成员为空指针时返回SURFACE_ERROR_ERROR。 | ||
| 914 | * @since 23 | 916 | * @since 23 |
| 915 | * @version 1.0 | 917 | * @version 1.0 |
| 916 | */ | 918 | */ |
| @@ -924,6 +926,9 @@ int32_t OH_NativeWindow_LockBuffer(OHNativeWindow* window, Region region, OHNati | |||
| 924 | * | 926 | * |
| 925 | * @syscap SystemCapability.Graphic.Graphic2D.NativeWindow | 927 | * @syscap SystemCapability.Graphic.Graphic2D.NativeWindow |
| 926 | * @param window 一个指向OHNativeWindow的结构体实例的指针。 | 928 | * @param window 一个指向OHNativeWindow的结构体实例的指针。 |
| 929 | + * @return 执行成功时返回SURFACE_ERROR_OK。\n | ||
梳理一下,哪些是需求哪些是优化? 优化的请先同步修改下DOCS仓,涉及weekly_20251117、weekly_20250915和6.0Release分支 ![]() ![]() | |||
| 930 | + * window为空指针时返回NATIVE_ERROR_INVALID_ARGUMENTS。\n | ||
| 931 | + * window的surface成员为空指针时返回SURFACE_ERROR_ERROR。 | ||
| 927 | * @since 23 | 932 | * @since 23 |
| 928 | * @version 1.0 | 933 | * @version 1.0 |
| 929 | */ | 934 | */ |


不是反序列化失败吗?parcel是什么意思