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