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