diff --git a/graphic/graphic_2d/native_window/external_window.h b/graphic/graphic_2d/native_window/external_window.h index f851a3fee9bbd0af38687a9459e741223257a671..30112812dba526f399f30cf8c61c22c283d31419 100644 --- a/graphic/graphic_2d/native_window/external_window.h +++ b/graphic/graphic_2d/native_window/external_window.h @@ -45,6 +45,14 @@ extern "C" { #endif typedef struct OH_NativeBuffer OH_NativeBuffer; +/** + * @brief Defines the ipc parcel. + * + * @since 12 + * @version 1.0 + */ +typedef struct OHIPCParcel OHIPCParcel; + /** * @brief native window. * @since 8 @@ -659,6 +667,32 @@ int32_t OH_NativeWindow_NativeWindowSetScalingModeV2(OHNativeWindow *window, OHS */ void OH_NativeWindow_SetBufferHold(OHNativeWindow *window); +/** + * @brief Write an OHNativeWindow to an OHIPCParcel. + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeWindow + * @param window Indicates the pointer to an OHNativeWindow instance. + * @param parcel Indicates the pointer to an OHIPCParcel instance. + * @return 0 - Success. + * 40001000 - parcel is NULL or window is NULL. + * @since 12 + * @version 1.0 + */ +int32_t OH_NativeWindow_WriteToParcel(OHNativeWindow *window, OHIPCParcel *parcel); + +/** + * @brief Read an OHNativeWindow from an OHIPCParcel. + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeWindow + * @param parcel Indicates the pointer to an OHIPCParcel instance. + * @param window Indicates the pointer to an OHNativeWindow instance. + * @return 0 - Success. + * 40001000 - parcel is NULL or parcel does not contain the window. + * @since 12 + * @version 1.0 + */ +int32_t OH_NativeWindow_ReadFromParcel(OHIPCParcel *parcel, OHNativeWindow **window); + /** * @brief Get the last flushed OHNativeWindowBuffer from an OHNativeWindow instance. * diff --git a/graphic/graphic_2d/native_window/libnative_window.ndk.json b/graphic/graphic_2d/native_window/libnative_window.ndk.json index 5707571dabdfb2206e27af8c288131ac6a4f1f5e..7b34d72999671eb821622a14ee96eb8f558dcacc 100644 --- a/graphic/graphic_2d/native_window/libnative_window.ndk.json +++ b/graphic/graphic_2d/native_window/libnative_window.ndk.json @@ -26,5 +26,13 @@ { "name": "OH_NativeWindow_NativeWindowAttachBuffer" }, { "name": "OH_NativeWindow_NativeWindowDetachBuffer" }, { "name": "OH_NativeWindow_SetBufferHold" }, + { + "first_introduced": "12", + "name": "OH_NativeWindow_WriteToParcel" + }, + { + "first_introduced": "12", + "name": "OH_NativeWindow_ReadFromParcel" + }, { "name": "OH_NativeWindow_GetLastFlushedBufferV2" } ] \ No newline at end of file