1e41f4b71Sopenharmony_ci# NativeDisplaySoloist
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## 概述
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci主要是用于UI线程以外的线程中进行帧率控制的Native侧业务。
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci**起始版本:** 12
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## 汇总
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci### 文件
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci| 名称 | 描述 | 
17e41f4b71Sopenharmony_ci| -------- | -------- |
18e41f4b71Sopenharmony_ci| [native_display_soloist.h](native__display__soloist_8h.md) | 定义获取和使用NativeDisplaySoloist的相关函数。 | 
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci### 结构体
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci| 名称 | 描述 | 
24e41f4b71Sopenharmony_ci| -------- | -------- |
25e41f4b71Sopenharmony_ci| struct  [DisplaySoloist_ExpectedRateRange](_display_soloist___expected_rate_range.md) | 提供期望帧率范围结构体。 | 
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci### 类型定义
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci| 名称 | 描述 | 
31e41f4b71Sopenharmony_ci| -------- | -------- |
32e41f4b71Sopenharmony_ci| typedef struct [OH_DisplaySoloist](#oh_displaysoloist)  [OH_DisplaySoloist](#oh_displaysoloist) | 提供OH_DisplaySoloist结构体声明。 | 
33e41f4b71Sopenharmony_ci| typedef void(\* [OH_DisplaySoloist_FrameCallback](#oh_displaysoloist_framecallback)) (long long timestamp, long long targetTimestamp, void \*data) | OH_DisplaySoloist回调函数类型。 | 
34e41f4b71Sopenharmony_ci| typedef struct [DisplaySoloist_ExpectedRateRange](_display_soloist___expected_rate_range.md)  [DisplaySoloist_ExpectedRateRange](#displaysoloist_expectedraterange) | 提供期望帧率范围结构体。 | 
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci### 函数
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci| 名称 | 描述 | 
40e41f4b71Sopenharmony_ci| -------- | -------- |
41e41f4b71Sopenharmony_ci| [OH_DisplaySoloist](#oh_displaysoloist) \* [OH_DisplaySoloist_Create](#oh_displaysoloist_create) (bool useExclusiveThread) | 创建一个OH_DisplaySoloist实例,每次调用都会产生一个新的实例。 | 
42e41f4b71Sopenharmony_ci| int32_t [OH_DisplaySoloist_Destroy](#oh_displaysoloist_destroy) ([OH_DisplaySoloist](#oh_displaysoloist) \*displaySoloist) | 销毁OH_DisplaySoloist实例并回收对象占用的内存。 | 
43e41f4b71Sopenharmony_ci| int32_t [OH_DisplaySoloist_Start](#oh_displaysoloist_start) ([OH_DisplaySoloist](#oh_displaysoloist) \*displaySoloist, [OH_DisplaySoloist_FrameCallback](#oh_displaysoloist_framecallback) callback, void \*data) | 设置每帧回调函数,每次VSync信号到来时启动每帧回调。 | 
44e41f4b71Sopenharmony_ci| int32_t [OH_DisplaySoloist_Stop](#oh_displaysoloist_stop) ([OH_DisplaySoloist](#oh_displaysoloist) \*displaySoloist) | 停止请求下一次VSync信号,并停止调用回调函数callback。 | 
45e41f4b71Sopenharmony_ci| int32_t [OH_DisplaySoloist_SetExpectedFrameRateRange](#oh_displaysoloist_setexpectedframeraterange) ([OH_DisplaySoloist](#oh_displaysoloist) \*displaySoloist, [DisplaySoloist_ExpectedRateRange](_display_soloist___expected_rate_range.md) \*range) | 设置VSync期望帧率范围。 | 
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci## 类型定义说明
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci### DisplaySoloist_ExpectedRateRange
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci```
54e41f4b71Sopenharmony_citypedef struct DisplaySoloist_ExpectedRateRange DisplaySoloist_ExpectedRateRange
55e41f4b71Sopenharmony_ci```
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci**描述**
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci提供期望帧率范围结构体。
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci**起始版本:** 12
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci### OH_DisplaySoloist
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci```
67e41f4b71Sopenharmony_citypedef struct OH_DisplaySoloist OH_DisplaySoloist
68e41f4b71Sopenharmony_ci```
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci**描述**
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci提供OH_DisplaySoloist结构体声明。
73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci**起始版本:** 12
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci### OH_DisplaySoloist_FrameCallback
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci```
80e41f4b71Sopenharmony_citypedef void(* OH_DisplaySoloist_FrameCallback) (long long timestamp, long long targetTimestamp, void *data)
81e41f4b71Sopenharmony_ci```
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ci**描述**
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ciOH_DisplaySoloist回调函数类型。
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ci**起始版本:** 12
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci**参数:**
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci| 名称 | 描述 | 
92e41f4b71Sopenharmony_ci| -------- | -------- |
93e41f4b71Sopenharmony_ci| timestamp | VSync时间戳。 | 
94e41f4b71Sopenharmony_ci| targetTimestamp | 预期的下一帧VSync时间戳。 | 
95e41f4b71Sopenharmony_ci| data | 用户自定义数据。 | 
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci
98e41f4b71Sopenharmony_ci## 函数说明
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci### OH_DisplaySoloist_Create()
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci```
104e41f4b71Sopenharmony_ciOH_DisplaySoloist* OH_DisplaySoloist_Create (bool useExclusiveThread)
105e41f4b71Sopenharmony_ci```
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci**描述**
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci创建一个OH_DisplaySoloist实例,每次调用都会产生一个新的实例。
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci**起始版本:** 12
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci**参数:**
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ci| 名称 | 描述 | 
116e41f4b71Sopenharmony_ci| -------- | -------- |
117e41f4b71Sopenharmony_ci| useExclusiveThread | 表示此OH_DisplaySoloist实例是否是独占线程,true表示独占一个线程,false表示共享线程。 | 
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci**返回:**
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci返回一个指向[OH_DisplaySoloist](#oh_displaysoloist)实例的指针,如果返回空表示执行失败,可能的原因是内存不足。
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ci### OH_DisplaySoloist_Destroy()
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci```
127e41f4b71Sopenharmony_ciint32_t OH_DisplaySoloist_Destroy (OH_DisplaySoloist* displaySoloist)
128e41f4b71Sopenharmony_ci```
129e41f4b71Sopenharmony_ci
130e41f4b71Sopenharmony_ci**描述**
131e41f4b71Sopenharmony_ci
132e41f4b71Sopenharmony_ci销毁OH_DisplaySoloist实例并回收对象占用的内存。
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ci**起始版本:** 12
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ci**参数:**
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_ci| 名称 | 描述 | 
139e41f4b71Sopenharmony_ci| -------- | -------- |
140e41f4b71Sopenharmony_ci| displaySoloist | 一个指向[OH_DisplaySoloist](#oh_displaysoloist)实例的指针。 | 
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ci**返回:**
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci返回值为0表示执行成功,-1表示执行失败。
145e41f4b71Sopenharmony_ci
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ci### OH_DisplaySoloist_SetExpectedFrameRateRange()
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci```
150e41f4b71Sopenharmony_ciint32_t OH_DisplaySoloist_SetExpectedFrameRateRange (OH_DisplaySoloist* displaySoloist, DisplaySoloist_ExpectedRateRange* range )
151e41f4b71Sopenharmony_ci```
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci**描述**
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci设置VSync期望帧率范围。
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci**起始版本:** 12
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ci**参数:**
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci| 名称 | 描述 | 
162e41f4b71Sopenharmony_ci| -------- | -------- |
163e41f4b71Sopenharmony_ci| displaySoloist | 一个指向[OH_DisplaySoloist](#oh_displaysoloist)实例的指针。 | 
164e41f4b71Sopenharmony_ci| range | 一个指向期望帧率范围[DisplaySoloist_ExpectedRateRange](_display_soloist___expected_rate_range.md)实例的指针。 | 
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_ci**返回:**
167e41f4b71Sopenharmony_ci
168e41f4b71Sopenharmony_ci返回值为0表示执行成功,-1表示执行失败。
169e41f4b71Sopenharmony_ci
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ci### OH_DisplaySoloist_Start()
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci```
174e41f4b71Sopenharmony_ciint32_t OH_DisplaySoloist_Start (OH_DisplaySoloist* displaySoloist, OH_DisplaySoloist_FrameCallback callback, void* data )
175e41f4b71Sopenharmony_ci```
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci**描述**
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci设置每帧回调函数,每次VSync信号到来时启动每帧回调。
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci**起始版本:** 12
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci**参数:**
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_ci| 名称 | 描述 | 
186e41f4b71Sopenharmony_ci| -------- | -------- |
187e41f4b71Sopenharmony_ci| displaySoloist | 一个指向[OH_DisplaySoloist](#oh_displaysoloist)实例的指针。 | 
188e41f4b71Sopenharmony_ci| callback | 表示下一次VSync信号到来时执行的回调函数类型。 | 
189e41f4b71Sopenharmony_ci| data | 一个指向用户自定义数据结构的指针,类型是void\*。 | 
190e41f4b71Sopenharmony_ci
191e41f4b71Sopenharmony_ci**返回:**
192e41f4b71Sopenharmony_ci
193e41f4b71Sopenharmony_ci返回值为0表示执行成功,-1表示执行失败。
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci### OH_DisplaySoloist_Stop()
197e41f4b71Sopenharmony_ci
198e41f4b71Sopenharmony_ci```
199e41f4b71Sopenharmony_ciint32_t OH_DisplaySoloist_Stop (OH_DisplaySoloist* displaySoloist)
200e41f4b71Sopenharmony_ci```
201e41f4b71Sopenharmony_ci
202e41f4b71Sopenharmony_ci**描述**
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_ci停止请求下一次VSync信号,并停止调用回调函数callback。
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci**起始版本:** 12
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_ci**参数:**
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci| 名称 | 描述 | 
211e41f4b71Sopenharmony_ci| -------- | -------- |
212e41f4b71Sopenharmony_ci| displaySoloist | 一个指向[OH_DisplaySoloist](#oh_displaysoloist)实例的指针。 | 
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci**返回:**
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci返回值为0表示执行成功,-1表示执行失败。
217