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/>**引用文件:** &lt;native_vsync/native_vsync.h&gt; <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)。