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