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