1e41f4b71Sopenharmony_ci# NativeVsync 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci## 概述 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci提供NativeVsync功能。 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci**起始版本:** 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci9 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## 汇总 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci### 文件 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci| 名称 | 描述 | 21e41f4b71Sopenharmony_ci| -------- | -------- | 22e41f4b71Sopenharmony_ci| [native_vsync.h](native__vsync_8h.md) | 定义获取和使用NativeVsync的相关函数。<br/>**引用文件:** <native_vsync/native_vsync.h> <br/>**库:** libnative_vsync.so | 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci### 类型定义 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci| 名称 | 描述 | 28e41f4b71Sopenharmony_ci| -------- | -------- | 29e41f4b71Sopenharmony_ci| typedef enum [OHNativeErrorCode](#ohnativeerrorcode) [OHNativeErrorCode](#ohnativeerrorcode) | 接口错误码说明(仅用于查询)。 | 30e41f4b71Sopenharmony_ci| typedef struct [OH_NativeVSync](#oh_nativevsync) [OH_NativeVSync](#oh_nativevsync) | 提供OH_NativeVSync结构体声明。 | 31e41f4b71Sopenharmony_ci| typedef void(\* [OH_NativeVSync_FrameCallback](#oh_nativevsync_framecallback)) (long long timestamp, void \*data) | VSync回调函数类型。 | 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci### 枚举 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci| 名称 | 描述 | 37e41f4b71Sopenharmony_ci| -------- | -------- | 38e41f4b71Sopenharmony_ci| [OHNativeErrorCode](#ohnativeerrorcode-1) {<br/>NATIVE_ERROR_OK = 0, NATIVE_ERROR_INVALID_ARGUMENTS = 40001000, NATIVE_ERROR_NO_PERMISSION = 40301000, NATIVE_ERROR_NO_BUFFER = 40601000,<br/>NATIVE_ERROR_NO_CONSUMER = 41202000, NATIVE_ERROR_NOT_INIT = 41203000, NATIVE_ERROR_CONSUMER_CONNECTED = 41206000, NATIVE_ERROR_BUFFER_STATE_INVALID = 41207000,<br/>NATIVE_ERROR_BUFFER_IN_CACHE = 41208000, NATIVE_ERROR_BUFFER_QUEUE_FULL = 41209000, NATIVE_ERROR_BUFFER_NOT_IN_CACHE = 41210000,NATIVE_ERROR_CONSUMER_DISCONNECTED = 41211000,NATIVE_ERROR_CONSUMER_NO_LISTENER_REGISTERED = 41212000, NATIVE_ERROR_UNSUPPORTED = 50102000,<br/>NATIVE_ERROR_UNKNOWN = 50002000,NATIVE_ERROR_HDI_ERROR = 50007000,NATIVE_ERROR_BINDER_ERROR = 50401000,<br/>NATIVE_ERROR_EGL_STATE_UNKNOWN = 60001000, NATIVE_ERROR_EGL_API_FAILED = 60002000<br/>} | 接口错误码说明(仅用于查询)。 | 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci### 函数 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci| 名称 | 描述 | 44e41f4b71Sopenharmony_ci| -------- | -------- | 45e41f4b71Sopenharmony_ci| [OH_NativeVSync_Create](#oh_nativevsync_create) (const char \*name, unsigned int length) | 创建一个OH_NativeVSync实例,每次调用都会产生一个新的实例。 | 46e41f4b71Sopenharmony_ci| [OH_NativeVSync_Destroy](#oh_nativevsync_destroy) ([OH_NativeVSync](#oh_nativevsync) \*nativeVsync) | 销毁OH_NativeVSync实例。 | 47e41f4b71Sopenharmony_ci| int [OH_NativeVSync_RequestFrame](#oh_nativevsync_requestframe) ([OH_NativeVSync](#oh_nativevsync) \*nativeVsync, [OH_NativeVSync_FrameCallback](#oh_nativevsync_framecallback) callback, void \*data) | 请求下一次vsync信号,当信号到来时,调用回调函数callback。 如果在同一帧内中多次调用此接口,则只会触发最后一个回调。 | 48e41f4b71Sopenharmony_ci| int [OH_NativeVSync_RequestFrameWithMultiCallback](#oh_nativevsync_requestframewithmulticallback) ([OH_NativeVSync](#oh_nativevsync) \*nativeVsync, [OH_NativeVSync_FrameCallback](#oh_nativevsync_framecallback) callback, void \*data) | 请求下一次vsync信号,当信号到来时,调用回调函数callback。 如果在同一帧内中多次调用此接口,每一次传入的callback都会被执行。 | 49e41f4b71Sopenharmony_ci| [OH_NativeVSync_GetPeriod](#oh_nativevsync_getperiod) ([OH_NativeVSync](#oh_nativevsync) \*nativeVsync, long long \*period) |获取vsync周期。| 50e41f4b71Sopenharmony_ci| int [OH_NativeVSync_DVSyncSwitch](#oh_nativevsync_dvsyncswitch) ([OH_NativeVSync](#oh_nativevsync) \*nativeVsync, bool enable) | 启用DVSync以提高自绘制动画场景的流畅性。 DVSync是Decoupled VSync的缩写,它是一种与硬件VSync解耦的帧时序管理策略。<br/>DVSync通过提前发送带有未来时间戳的VSync信号驱动后续动画帧的提前绘制,这些帧会被帧缓冲队列缓存;DVSync通过缓存的帧减少未来可能发生的丢帧,进而提高动画场景的流畅性。<br/>因为DVSync需要占用空闲的自绘制帧缓冲用于缓存提前绘制的动画帧,用户需要确保至少有一个空闲的帧缓冲区,否则不建议启用此功能。<br/>启用DVSync后,用户需要正确响应提前发送的VSync信号,并在前一个VSync对应的动画帧完成后再请求下一个VSync,且自绘制帧需要携带与VSync一致的时间戳。<br/>在动画结束之后,用户需要关闭DVSync。<br/>在不支持DVSync的平台或者如果有另一个应用程序已经启用了DVSync,则当前的启用操作将不会生效,应用程序仍将收到正常的VSync信号。 | 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci## 类型定义说明 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci### OH_NativeVSync 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci 58e41f4b71Sopenharmony_ci``` 59e41f4b71Sopenharmony_citypedef struct OH_NativeVSync OH_NativeVSync 60e41f4b71Sopenharmony_ci``` 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci**描述:** 63e41f4b71Sopenharmony_ci 64e41f4b71Sopenharmony_ci提供OH_NativeVSync结构体声明。 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci### OH_NativeVSync_FrameCallback 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci``` 71e41f4b71Sopenharmony_citypedef void(* OH_NativeVSync_FrameCallback) (long long timestamp, void *data) 72e41f4b71Sopenharmony_ci``` 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci**描述:** 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ciVSync回调函数类型。 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ci**参数:** 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci| 名称 | 描述 | 83e41f4b71Sopenharmony_ci| -------- | -------- | 84e41f4b71Sopenharmony_ci| timestamp | VSync时间戳。 | 85e41f4b71Sopenharmony_ci| data | 用户自定义数据。 | 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci### OHNativeErrorCode 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci``` 91e41f4b71Sopenharmony_citypedef enum OHNativeErrorCode OHNativeErrorCode 92e41f4b71Sopenharmony_ci``` 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci**描述** 95e41f4b71Sopenharmony_ci 96e41f4b71Sopenharmony_ci接口错误码说明(仅用于查询)。 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ci**起始版本:** 12 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci## 枚举类型说明 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ci### OHNativeErrorCode 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_ci``` 107e41f4b71Sopenharmony_cienum OHNativeErrorCode 108e41f4b71Sopenharmony_ci``` 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci**描述** 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ci接口错误码说明(仅用于查询)。 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci**起始版本:** 12 115e41f4b71Sopenharmony_ci 116e41f4b71Sopenharmony_ci| 枚举值 | 描述 | 117e41f4b71Sopenharmony_ci| -------- | -------- | 118e41f4b71Sopenharmony_ci| NATIVE_ERROR_OK | 成功 | 119e41f4b71Sopenharmony_ci| NATIVE_ERROR_INVALID_ARGUMENTS | 入参无效 | 120e41f4b71Sopenharmony_ci| NATIVE_ERROR_NO_PERMISSION | 无权限操作 | 121e41f4b71Sopenharmony_ci| NATIVE_ERROR_NO_BUFFER | 无空闲可用的buffer | 122e41f4b71Sopenharmony_ci| NATIVE_ERROR_NO_CONSUMER | 消费端不存在 | 123e41f4b71Sopenharmony_ci| NATIVE_ERROR_NOT_INIT | 未初始化 | 124e41f4b71Sopenharmony_ci| NATIVE_ERROR_CONSUMER_CONNECTED | 消费端已经被连接 | 125e41f4b71Sopenharmony_ci| NATIVE_ERROR_BUFFER_STATE_INVALID | buffer状态不符合预期 | 126e41f4b71Sopenharmony_ci| NATIVE_ERROR_BUFFER_IN_CACHE | buffer已在缓存队列中 | 127e41f4b71Sopenharmony_ci| NATIVE_ERROR_BUFFER_QUEUE_FULL | 队列已满 | 128e41f4b71Sopenharmony_ci| NATIVE_ERROR_BUFFER_NOT_IN_CACHE | buffer不在缓存队列中 | 129e41f4b71Sopenharmony_ci| NATIVE_ERROR_CONSUMER_DISCONNECTED | 消费端已经被断开连接 | 130e41f4b71Sopenharmony_ci| NATIVE_ERROR_CONSUMER_NO_LISTENER_REGISTERED | 消费端未注册listener回调函数 | 131e41f4b71Sopenharmony_ci| NATIVE_ERROR_UNSUPPORTED | 当前设备或平台不支持 | 132e41f4b71Sopenharmony_ci| NATIVE_ERROR_UNKNOWN | 未知错误,请查看日志 | 133e41f4b71Sopenharmony_ci| NATIVE_ERROR_HDI_ERROR | HDI接口调用失败 | 134e41f4b71Sopenharmony_ci| NATIVE_ERROR_BINDER_ERROR | 跨进程通信失败 | 135e41f4b71Sopenharmony_ci| NATIVE_ERROR_EGL_STATE_UNKNOWN | egl环境状态异常 | 136e41f4b71Sopenharmony_ci| NATIVE_ERROR_EGL_API_FAILED | egl接口调用失败 | 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci## 函数说明 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci### OH_NativeVSync_DVSyncSwitch() 142e41f4b71Sopenharmony_ci 143e41f4b71Sopenharmony_ci``` 144e41f4b71Sopenharmony_ciint OH_NativeVSync_DVSyncSwitch (OH_NativeVSync* nativeVsync, bool enable ) 145e41f4b71Sopenharmony_ci``` 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci**描述** 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci启用DVSync以提高自绘制动画场景的流畅性。 DVSync是Decoupled VSync的缩写,它是一种与硬件VSync解耦的帧时序管理策略。 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ciDVSync通过提前发送带有未来时间戳的VSync信号驱动后续动画帧的提前绘制,这些帧会被帧缓冲队列缓存;DVSync通过缓存的帧减少未来可能发生的丢帧,进而提高动画场景的流畅性。 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci因为DVSync需要占用空闲的自绘制帧缓冲用于缓存提前绘制的动画帧,用户需要确保至少有一个空闲的帧缓冲区,否则不建议启用此功能。 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci启用DVSync后,用户需要正确响应提前发送的VSync信号,并在前一个VSync对应的动画帧完成后再请求下一个VSync,且自绘制帧需要携带与VSync一致的时间戳。 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci在动画结束之后,用户需要关闭DVSync。 158e41f4b71Sopenharmony_ci 159e41f4b71Sopenharmony_ci在不支持DVSync的平台或者如果有另一个应用程序已经启用了DVSync,则当前的启用操作将不会生效,应用程序仍将收到正常的VSync信号。 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphic.Graphic2D.NativeVsync 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci**起始版本:** 14 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci**参数:** 166e41f4b71Sopenharmony_ci 167e41f4b71Sopenharmony_ci| 名称 | 描述 | 168e41f4b71Sopenharmony_ci| -------- | -------- | 169e41f4b71Sopenharmony_ci| nativeVsync | 一个指向OH_NativeVSync实例的指针。 | 170e41f4b71Sopenharmony_ci| enable | 表示打开或者关闭DVSync,true表示打开,false表示关闭。 | 171e41f4b71Sopenharmony_ci 172e41f4b71Sopenharmony_ci**返回:** 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_ci返回值为0表示执行成功,其他返回值可参考[OHNativeErrorCode](#ohnativeerrorcode)。 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_ci### OH_NativeVSync_GetPeriod() 179e41f4b71Sopenharmony_ci 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ci``` 182e41f4b71Sopenharmony_ciint OH_NativeVSync_GetPeriod (OH_NativeVSync * nativeVsync, long long * period ) 183e41f4b71Sopenharmony_ci``` 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_ci**描述:** 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci获取vsync周期。 188e41f4b71Sopenharmony_ci 189e41f4b71Sopenharmony_ci\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync 190e41f4b71Sopenharmony_ci 191e41f4b71Sopenharmony_ci**参数:** 192e41f4b71Sopenharmony_ci 193e41f4b71Sopenharmony_ci| 名称 | 描述 | 194e41f4b71Sopenharmony_ci| -------- | -------- | 195e41f4b71Sopenharmony_ci| nativeVsync | 一个指向OH_NativeVSync实例的指针。| 196e41f4b71Sopenharmony_ci| period | 用于获取vsync周期的变量。 | 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci**返回:** 199e41f4b71Sopenharmony_ci 200e41f4b71Sopenharmony_ci返回值为0表示执行成功,其他返回值可参考[OHNativeErrorCode](#ohnativeerrorcode)。 201e41f4b71Sopenharmony_ci 202e41f4b71Sopenharmony_ci**起始版本:** 203e41f4b71Sopenharmony_ci 204e41f4b71Sopenharmony_ci10 205e41f4b71Sopenharmony_ci 206e41f4b71Sopenharmony_ci 207e41f4b71Sopenharmony_ci### OH_NativeVSync_Create() 208e41f4b71Sopenharmony_ci 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_ci``` 211e41f4b71Sopenharmony_ciOH_NativeVSync* OH_NativeVSync_Create (const char * name, unsigned int length ) 212e41f4b71Sopenharmony_ci``` 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_ci**描述:** 215e41f4b71Sopenharmony_ci 216e41f4b71Sopenharmony_ci创建一个OH_NativeVSync实例,每次调用都会产生一个新的实例。 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync 219e41f4b71Sopenharmony_ci 220e41f4b71Sopenharmony_ci**参数:** 221e41f4b71Sopenharmony_ci 222e41f4b71Sopenharmony_ci| 名称 | 描述 | 223e41f4b71Sopenharmony_ci| -------- | -------- | 224e41f4b71Sopenharmony_ci| name | 表示一个名字,与创建的OH_NativeVSync实例关联。 | 225e41f4b71Sopenharmony_ci| length | name的长度。 | 226e41f4b71Sopenharmony_ci 227e41f4b71Sopenharmony_ci**返回:** 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci返回一个指向OH_NativeVSync实例的指针。 230e41f4b71Sopenharmony_ci 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ci### OH_NativeVSync_Destroy() 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci 235e41f4b71Sopenharmony_ci``` 236e41f4b71Sopenharmony_civoid OH_NativeVSync_Destroy (OH_NativeVSync * nativeVsync) 237e41f4b71Sopenharmony_ci``` 238e41f4b71Sopenharmony_ci 239e41f4b71Sopenharmony_ci**描述:** 240e41f4b71Sopenharmony_ci 241e41f4b71Sopenharmony_ci销毁OH_NativeVSync实例。 242e41f4b71Sopenharmony_ci 243e41f4b71Sopenharmony_ci\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_ci**参数:** 246e41f4b71Sopenharmony_ci 247e41f4b71Sopenharmony_ci| 名称 | 描述 | 248e41f4b71Sopenharmony_ci| -------- | -------- | 249e41f4b71Sopenharmony_ci| nativeVsync | 一个指向OH_NativeVSync实例的指针。 | 250e41f4b71Sopenharmony_ci 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_ci### OH_NativeVSync_RequestFrame() 253e41f4b71Sopenharmony_ci 254e41f4b71Sopenharmony_ci 255e41f4b71Sopenharmony_ci``` 256e41f4b71Sopenharmony_ciint OH_NativeVSync_RequestFrame (OH_NativeVSync * nativeVsync, OH_NativeVSync_FrameCallback callback, void * data ) 257e41f4b71Sopenharmony_ci``` 258e41f4b71Sopenharmony_ci 259e41f4b71Sopenharmony_ci**描述:** 260e41f4b71Sopenharmony_ci 261e41f4b71Sopenharmony_ci请求下一次vsync信号,当信号到来时,调用回调函数callback。 如果在同一帧内中多次调用此接口,则只会触发最后一个回调。 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_ci**参数:** 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ci| 名称 | 描述 | 268e41f4b71Sopenharmony_ci| -------- | -------- | 269e41f4b71Sopenharmony_ci| nativeVsync | 一个指向OH_NativeVSync实例的指针。 | 270e41f4b71Sopenharmony_ci| callback | 一个OH_NativeVSync_FrameCallback类型的函数指针,当下一次vsync信号到来时会被调用。 | 271e41f4b71Sopenharmony_ci| data | 一个指向用户自定义数据结构的指针,类型是void\*。 | 272e41f4b71Sopenharmony_ci 273e41f4b71Sopenharmony_ci**返回:** 274e41f4b71Sopenharmony_ci 275e41f4b71Sopenharmony_ci返回值为0表示执行成功,其他返回值可参考[OHNativeErrorCode](#ohnativeerrorcode)。 276e41f4b71Sopenharmony_ci 277e41f4b71Sopenharmony_ci 278e41f4b71Sopenharmony_ci### OH_NativeVSync_RequestFrameWithMultiCallback() 279e41f4b71Sopenharmony_ci 280e41f4b71Sopenharmony_ci``` 281e41f4b71Sopenharmony_ciint OH_NativeVSync_RequestFrameWithMultiCallback (OH_NativeVSync* nativeVsync, OH_NativeVSync_FrameCallback callback, void* data ) 282e41f4b71Sopenharmony_ci``` 283e41f4b71Sopenharmony_ci 284e41f4b71Sopenharmony_ci**描述** 285e41f4b71Sopenharmony_ci 286e41f4b71Sopenharmony_ci请求下一次vsync信号,当信号到来时,调用回调函数callback。 如果在同一帧内中多次调用此接口,每一次传入的callback都会被执行。 287e41f4b71Sopenharmony_ci 288e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Graphic.Graphic2D.NativeVsync 289e41f4b71Sopenharmony_ci 290e41f4b71Sopenharmony_ci**起始版本:** 12 291e41f4b71Sopenharmony_ci 292e41f4b71Sopenharmony_ci**参数:** 293e41f4b71Sopenharmony_ci 294e41f4b71Sopenharmony_ci| 名称 | 描述 | 295e41f4b71Sopenharmony_ci| -------- | -------- | 296e41f4b71Sopenharmony_ci| nativeVsync | 一个指向OH_NativeVSync实例的指针。 | 297e41f4b71Sopenharmony_ci| callback | 一个OH_NativeVSync_FrameCallback类型的函数指针,当下一次vsync信号到来时会被调用。 | 298e41f4b71Sopenharmony_ci| data | 一个指向用户自定义数据结构的指针,类型是void\*。 | 299e41f4b71Sopenharmony_ci 300e41f4b71Sopenharmony_ci**返回:** 301e41f4b71Sopenharmony_ci 302e41f4b71Sopenharmony_ci返回值为0表示执行成功,其他返回值可参考[OHNativeErrorCode](#ohnativeerrorcode)。