1# LayerFuncs 2 3 4## **概述** 5 6显示图层驱动接口结构体,定义显示图层驱动接口函数指针。 7 8**相关模块:** 9 10[Display](_display.md) 11 12 13## **汇总** 14 15 16### Public 属性 17 18 | 名称 | 描述 | 19| -------- | -------- | 20| ([InitDisplay](#initdisplay))(uint32_t devId) | 初始化显示设备。 | 21| ([DeinitDisplay](#deinitdisplay))(uint32_t devId) | 取消初始化显示设备。 | 22| ([GetDisplayInfo](#getdisplayinfo))(uint32_t devId, DisplayInfo \*dispInfo) | 获取显示设备相关信息。 | 23| ([CreateLayer](#createlayer))(uint32_t devId, const LayerInfo \*layerInfo, uint32_t \*layerId) | 打开图层。 | 24| ([CloseLayer](#closelayer))(uint32_t devId, uint32_t layerId) | 关闭图层。 | 25| ([SetLayerVisible](#setlayervisible))(uint32_t devId, uint32_t layerId, bool visible) | 设置图层是否可见。 | 26| ([GetLayerVisibleState](#getlayervisiblestate))(uint32_t devId, uint32_t layerId, bool \*visible) | 获取图层是否可见状态。 | 27| ([SetLayerSize](#setlayersize))(uint32_t devId, uint32_t layerId, IRect \*rect) | 设置图层大小。 | 28| ([GetLayerSize](#getlayersize))(uint32_t devId, uint32_t layerId, IRect \*rect) | 获取图层大小。 | 29| ([SetLayerCrop](#setlayercrop))(uint32_t devId, uint32_t layerId, IRect \*rect) | 设置图层裁剪区域。 | 30| ([SetLayerZorder](#setlayerzorder))(uint32_t devId, uint32_t layerId, uint32_t zorder) | 设置图层Z轴次序。 | 31| ([GetLayerZorder](#getlayerzorder))(uint32_t devId, uint32_t layerId, uint32_t \*zorder) | 获取图层Z轴次序。 | 32| ([SetLayerPreMulti](#setlayerpremulti))(uint32_t devId, uint32_t layerId, bool preMul) | 设置图层预乘。 | 33| ([GetLayerPreMulti](#getlayerpremulti))(uint32_t devId, uint32_t layerId, bool \*preMul) | 获取图层预乘标识。 | 34| ([SetLayerAlpha](#setlayeralpha))(uint32_t devId, uint32_t layerId, LayerAlpha \*alpha) | 设置图层Alpha值。 | 35| ([GetLayerAlpha](#getlayeralpha))(uint32_t devId, uint32_t layerId, LayerAlpha \*alpha) | 获取图层Alpha值。 | 36| ([SetLayerColorKey](#setlayercolorkey))(uint32_t devId, uint32_t layerId, bool enable, uint32_t key) | 设置图层colorkey属性,在图层叠加时使用。 | 37| ([GetLayerColorKey](#getlayercolorkey))(uint32_t devId, uint32_t layerId, bool \*enable, uint32_t \*key) | 获取图层colorkey。 | 38| ([SetLayerPalette](#setlayerpalette))(uint32_t devId, uint32_t layerId, uint32_t \*palette, uint32_t len) | 设置图层调色板。 | 39| ([GetLayerPalette](#getlayerpalette))(uint32_t devId, uint32_t layerId, uint32_t \*palette, uint32_t len) | 获取图层调色板。 | 40| ([SetTransformMode](#settransformmode))(uint32_t devId, uint32_t layerId, TransformType type) | 设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。 | 41| ([SetLayerCompression](#setlayercompression))(uint32_t devId, uint32_t layerId, int32_t compType) | 设置图层压缩功能。 | 42| ([GetLayerCompression](#getlayercompression))(uint32_t devId, uint32_t layerId, int32_t \*compType) | 获取图层压缩功能是否打开。 | 43| ([SetLayerDirtyRegion](#setlayerdirtyregion))(uint32_t devId, uint32_t layerId, IRect \*region) | 设置图层刷新区域。 | 44| ([GetLayerBuffer](#getlayerbuffer))(uint32_t devId, uint32_t layerId, LayerBuffer \*buffer) | 获取图层的buffer。 | 45| ([Flush](#flush))(uint32_t devId, uint32_t layerId, LayerBuffer \*buffer) | 刷新图层。 | 46| ([WaitForVBlank](#waitforvblank))(uint32_t devId, uint32_t layerId, int32_t timeOut) | 实现等待帧消隐期到来功能。 | 47| ([SnapShot](#snapshot))(uint32_t devId, LayerBuffer \*buffer) | 实现抓图功能。 | 48| ([SetLayerVisibleRegion](#setlayervisibleregion))(uint32_t devId, uint32_t layerId, uint32_t num, IRect \*rect) | 设置一个图层的可见区域。 | 49| ([SetLayerBuffer](#setlayerbuffer))(uint32_t devId, uint32_t layerId, const BufferHandle \*buffer, int32_t fence) | 设置一个层的缓冲区。 | 50| ([InvokeLayerCmd](#invokelayercmd))(uint32_t devId, uint32_t layerId, uint32_t cmd,...) | 扩展接口。 | 51| ([SetLayerCompositionType](#setlayercompositiontype))(uint32_t devId, uint32_t layerId, CompositionType type) | 设置客户端期望的组合类型。 | 52| ([SetLayerBlendType](#setlayerblendtype))(uint32_t devId, uint32_t layerId, BlendType type) | 设置混合类型。 | 53| ([SetLayerColorTransform](#setlayercolortransform))(uint32_t devId, uint32_t layerId, const float \*matrix) | 设置图层当前的颜色转换矩阵。 | 54| ([SetLayerColorDataSpace](#setlayercolordataspace))(uint32_t devId, uint32_t layerId, ColorDataSpace colorSpace) | 设置图层的颜色数据空间。 | 55| ([GetLayerColorDataSpace](#getlayercolordataspace))(uint32_t devId, uint32_t layerId, ColorDataSpace \*colorSpace) | 获取图层当前的颜色数据空间。 | 56| ([SetLayerMetaData](#setlayermetadata))(uint32_t devId, uint32_t layerId, uint32_t num, const HDRMetaData \*metaData) | 设置图层的HDRmetaData。 | 57| ([SetLayerMetaDataSet](#setlayermetadataset))(uint32_t devId, uint32_t layerId, HDRMetadataKey key, uint32_t num, const uint8_t \*metaData) | 设置图层的metaData set。 | 58| ([GetSupportedPresentTimestamp](#getsupportedpresenttimestamp))(uint32_t devId, uint32_t layerId, PresentTimestampType \*type) | 获取图层支持的上屏时间戳类型。 | 59| ([GetHwPresentTimestamp](#gethwpresenttimestamp))(uint32_t devId, uint32_t layerId, PresentTimestamp \*pts) | 获取图层的上屏时间戳信息。 | 60| ([SetLayerTunnelHandle](#setlayertunnelhandle))(uint32_t devId, uint32_t layerId, ExtDataHandle \*handle) | 设置图层的tunnel句柄。 | 61| ([GetLayerReleaseFence](#getlayerreleasefence))(uint32_t devId, uint32_t layerId, int32_t \*fence) | 获取图层的同步栅栏。 | 62 63 64## **类成员变量说明** 65 66 67### CloseLayer 68 69 70``` 71int32_t(* LayerFuncs::CloseLayer) (uint32_t devId, uint32_t layerId) 72``` 73 74**描述:** 75 76关闭图层。 77 78在完成显示后,如果不在需要使用图层,调用关闭图层接口关闭图层。 79 80**参数:** 81 82 | 名称 | 描述 | 83| -------- | -------- | 84| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 85| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 86 87**返回:** 88 89DISPLAY_SUCCESS 表示执行成功。 90 91其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 92 93**参见:** 94 95[CreateLayer](#createlayer) 96 97 98### CreateLayer 99 100 101``` 102int32_t(* LayerFuncs::CreateLayer) (uint32_t devId, const LayerInfo *layerInfo, uint32_t *layerId) 103``` 104 105**描述:** 106 107打开图层。 108 109GUI在使用图层时,需要先根据图层信息打开图层,打开图层成功可获得图层ID,根据图层ID使用图层各接口。 110 111**参数:** 112 113 | 名称 | 描述 | 114| -------- | -------- | 115| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 116| layerInfo | 输入参数,图层信息,上层GUI打开图层时需传递图层信息,包括图层类型,图层大小,像素格式等信息。 | 117| layerId | 输入参数,图层ID,打开图层成功后返回给GUI的图层ID,用于标识唯一的图层。 | 118 119**返回:** 120 121DISPLAY_SUCCESS 表示执行成功。 122 123其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 124 125**参见:** 126 127[CloseLayer](#closelayer) 128 129 130### DeinitDisplay 131 132 133``` 134int32_t(* LayerFuncs::DeinitDisplay) (uint32_t devId) 135``` 136 137**描述:** 138 139取消初始化显示设备。 140 141**参数:** 142 143 | 名称 | 描述 | 144| -------- | -------- | 145| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 146 147**返回:** 148 149DISPLAY_SUCCESS 表示执行成功。 150 151其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 152 153**参见:** 154 155[InitDisplay](#initdisplay) 156 157 158### Flush 159 160 161``` 162int32_t(* LayerFuncs::Flush) (uint32_t devId, uint32_t layerId, LayerBuffer *buffer) 163``` 164 165**描述:** 166 167刷新图层。 168 169将buffer显示数据刷新到指定的layerId图层上,实现图像数据显示到屏幕上。 170 171**参数:** 172 173 | 名称 | 描述 | 174| -------- | -------- | 175| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 176| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 177| buffer | 输出参数,待刷新的buffer。 | 178 179**返回:** 180 181DISPLAY_SUCCESS 表示执行成功。 182 183其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 184 185 186### GetDisplayInfo 187 188 189``` 190int32_t(* LayerFuncs::GetDisplayInfo) (uint32_t devId, DisplayInfo *dispInfo) 191``` 192 193**描述:** 194 195获取显示设备相关信息。 196 197**参数:** 198 199 | 名称 | 描述 | 200| -------- | -------- | 201| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 202| dispInfo | 输出参数,显示相关信息。 | 203 204**返回:** 205 206DISPLAY_SUCCESS 表示执行成功。 207 208其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 209 210 211### GetHwPresentTimestamp 212 213 214``` 215int32_t(* LayerFuncs::GetHwPresentTimestamp) (uint32_t devId, uint32_t layerId, PresentTimestamp *pts) 216``` 217 218**描述:** 219 220获取图层的上屏时间戳信息。 221 222**参数:** 223 224 | 名称 | 描述 | 225| -------- | -------- | 226| devId | 输入参数,指示需要操作的设备ID。 | 227| layerId | 输入参数,指示需要操作的图层ID。 | 228| pts | 输出参数,保存图层的上屏时间戳信息, 由接口实现层进行写入。 | 229 230**返回:** 231 232DISPLAY_SUCCESS 表示执行成功。 233 234其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 235 236 237### GetLayerAlpha 238 239 240``` 241int32_t(* LayerFuncs::GetLayerAlpha) (uint32_t devId, uint32_t layerId, LayerAlpha *alpha) 242``` 243 244**描述:** 245 246获取图层alpha值。 247 248**参数:** 249 250 | 名称 | 描述 | 251| -------- | -------- | 252| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 253| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 254| alpha | 输出参数,保存获取的图层alpha值。 | 255 256**返回:** 257 258DISPLAY_SUCCESS 表示执行成功。 259 260其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 261 262**参见:** 263 264[SetLayerAlpha](#setlayeralpha) 265 266 267### GetLayerBuffer 268 269 270``` 271int32_t(* LayerFuncs::GetLayerBuffer) (uint32_t devId, uint32_t layerId, LayerBuffer *buffer) 272``` 273 274**描述:** 275 276获取图层的buffer。 277 278向buffer中绘图后,调用Flush接口显示到屏幕上。 279 280**参数:** 281 282 | 名称 | 描述 | 283| -------- | -------- | 284| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 285| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 286| buffer | 输出参数,保存获取的图层buffer。 | 287 288**返回:** 289 290DISPLAY_SUCCESS 表示执行成功。 291 292其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 293 294**参见:** 295 296[Flush](#flush) 297 298 299### GetLayerColorDataSpace 300 301 302``` 303int32_t(* LayerFuncs::GetLayerColorDataSpace) (uint32_t devId, uint32_t layerId, ColorDataSpace *colorSpace) 304``` 305 306**描述:** 307 308获取图层当前的颜色数据空间。 309 310**参数:** 311 312 | 名称 | 描述 | 313| -------- | -------- | 314| devId | 输入参数,指示需要操作的设备ID。 | 315| layerId | 输入参数,指示需要操作的图层ID。 | 316| colorSpace | 输出参数,保存对应图层的颜色数据空间。 | 317 318**返回:** 319 320DISPLAY_SUCCESS 表示执行成功。 321 322其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 323 324 325### GetLayerColorKey 326 327 328``` 329int32_t(* LayerFuncs::GetLayerColorKey) (uint32_t devId, uint32_t layerId, bool *enable, uint32_t *key) 330``` 331 332**描述:** 333 334获取图层colorkey。 335 336**参数:** 337 338 | 名称 | 描述 | 339| -------- | -------- | 340| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 341| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 342| enable | 输出参数,保存获取的enable色键使能标识。 | 343| key | 输出参数,保存获取的色键值,即颜色值。 | 344 345**返回:** 346 347DISPLAY_SUCCESS 表示执行成功。 348 349其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 350 351**参见:** 352 353[SetLayerColorKey](#setlayercolorkey) 354 355 356### GetLayerCompression 357 358 359``` 360int32_t(* LayerFuncs::GetLayerCompression) (uint32_t devId, uint32_t layerId, int32_t *compType) 361``` 362 363**描述:** 364 365获取图层压缩功能是否打开。 366 367**参数:** 368 369 | 名称 | 描述 | 370| -------- | -------- | 371| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 372| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 373| compType | 输出参数,保存获取的图层压缩功能状态。 | 374 375**返回:** 376 377DISPLAY_SUCCESS 表示执行成功。 378 379其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 380 381**参见:** 382 383[SetLayerCompression](#setlayercompression) 384 385 386### GetLayerPalette 387 388 389``` 390int32_t(* LayerFuncs::GetLayerPalette) (uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len) 391``` 392 393**描述:** 394 395获取图层调色板。 396 397**参数:** 398 399 | 名称 | 描述 | 400| -------- | -------- | 401| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 402| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 403| palette | 输出参数,保存获取的图层调色板。 | 404| len | 输入参数,调色板长度。 | 405 406**返回:** 407 408DISPLAY_SUCCESS 表示执行成功。 409 410其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 411 412**参见:** 413 414[SetLayerPalette](#setlayerpalette) 415 416 417### GetLayerPreMulti 418 419 420``` 421int32_t(* LayerFuncs::GetLayerPreMulti) (uint32_t devId, uint32_t layerId, bool *preMul) 422``` 423 424**描述:** 425 426获取图层预乘标识。 427 428**参数:** 429 430 | 名称 | 描述 | 431| -------- | -------- | 432| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 433| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 434| preMul | 输出参数,保存获取的图层预乘使能标识。 | 435 436**返回:** 437 438DISPLAY_SUCCESS 表示执行成功。 439 440其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 441 442**参见:** 443 444[SetLayerPreMulti](#setlayerpremulti) 445 446 447### GetLayerReleaseFence 448 449 450``` 451int32_t(* LayerFuncs::GetLayerReleaseFence) (uint32_t devId, uint32_t layerId, int32_t *fence) 452``` 453 454**描述:** 455 456获取图层的同步栅栏。 457 458**参数:** 459 460 | 名称 | 描述 | 461| -------- | -------- | 462| devId | 输入参数,指示需要操作的设备ID。 | 463| layerId | 输入参数,指示需要操作的图层ID。 | 464| fence | 输出参数,保存图层的 release fence, 由接口实现层进行写入。 | 465 466**返回:** 467 468DISPLAY_SUCCESS 表示执行成功。 469 470其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 471 472 473### GetLayerSize 474 475 476``` 477int32_t(* LayerFuncs::GetLayerSize) (uint32_t devId, uint32_t layerId, IRect *rect) 478``` 479 480**描述:** 481 482获取图层大小。 483 484**参数:** 485 486 | 名称 | 描述 | 487| -------- | -------- | 488| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 489| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 490| rect | 输出参数,保存获取的图层大小。 | 491 492**返回:** 493 494DISPLAY_SUCCESS 表示执行成功。 495 496其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 497 498**参见:** 499 500[SetLayerSize](#setlayersize) 501 502 503### GetLayerVisibleState 504 505 506``` 507int32_t(* LayerFuncs::GetLayerVisibleState) (uint32_t devId, uint32_t layerId, bool *visible) 508``` 509 510**描述:** 511 512获取图层是否可见状态。 513 514**参数:** 515 516 | 名称 | 描述 | 517| -------- | -------- | 518| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 519| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 520| visible | 输出参数,保存获取的图层可见状态,true表示图层可见,false表示图层不可见。 | 521 522**返回:** 523 524DISPLAY_SUCCESS 表示执行成功。 525 526其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 527 528**参见:** 529 530[SetLayerVisible](#setlayervisible) 531 532 533### GetLayerZorder 534 535 536``` 537int32_t(* LayerFuncs::GetLayerZorder) (uint32_t devId, uint32_t layerId, uint32_t *zorder) 538``` 539 540**描述:** 541 542获取图层Z轴次序。 543 544**参数:** 545 546 | 名称 | 描述 | 547| -------- | -------- | 548| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 549| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 550| zorder | 输出参数,保存获取的图层Z轴次序,为整数值,取值范围为[0, 255],值越大图层越往上排列。 | 551 552**返回:** 553 554DISPLAY_SUCCESS 表示执行成功。 555 556其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 557 558**参见:** 559 560[SetLayerZorder](#setlayerzorder) 561 562 563### GetSupportedPresentTimestamp 564 565 566``` 567int32_t(* LayerFuncs::GetSupportedPresentTimestamp) (uint32_t devId, uint32_t layerId, PresentTimestampType *type) 568``` 569 570**描述:** 571 572获取图层支持的上屏时间戳类型。 573 574**参数:** 575 576 | 名称 | 描述 | 577| -------- | -------- | 578| devId | 输入参数,指示需要操作的设备ID。 | 579| layerId | 输入参数,指示需要操作的图层ID。 | 580| type | 输出参数,保存图层支持的上屏时间戳类型, 由接口实现层进行写入。 | 581 582**返回:** 583 584DISPLAY_SUCCESS 表示执行成功。 585 586其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 587 588 589### InitDisplay 590 591 592``` 593int32_t(* LayerFuncs::InitDisplay) (uint32_t devId) 594``` 595 596**描述:** 597 598初始化显示设备。 599 600**参数:** 601 602 | 名称 | 描述 | 603| -------- | -------- | 604| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 605 606**返回:** 607 608DISPLAY_SUCCESS 表示执行成功。 609 610其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 611 612**参见:** 613 614[DeinitDisplay](#deinitdisplay) 615 616 617### InvokeLayerCmd 618 619 620``` 621int32_t(* LayerFuncs::InvokeLayerCmd) (uint32_t devId, uint32_t layerId, uint32_t cmd,...) 622``` 623 624**描述:** 625 626扩展接口 627 628**参数:** 629 630 | 名称 | 描述 | 631| -------- | -------- | 632| devId | 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 | 633| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | 634| cmd | 输入参数,表示扩展cmd,用于识别不同的意图。 | 635 636**返回:** 637 638DISPLAY_SUCCESS 表示执行成功。 639 640其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 641 642 643### SetLayerAlpha 644 645 646``` 647int32_t(* LayerFuncs::SetLayerAlpha) (uint32_t devId, uint32_t layerId, LayerAlpha *alpha) 648``` 649 650**描述:** 651 652设置图层alpha值。 653 654**参数:** 655 656 | 名称 | 描述 | 657| -------- | -------- | 658| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 659| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 660| alpha | 输入参数,待设置的图层 alpha 值。 | 661 662**返回:** 663 664DISPLAY_SUCCESS 表示执行成功。 665 666其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 667 668**参见:** 669 670[GetLayerAlpha](#getlayeralpha) 671 672 673### SetLayerBlendType 674 675 676``` 677int32_t(* LayerFuncs::SetLayerBlendType) (uint32_t devId, uint32_t layerId, BlendType type) 678``` 679 680**描述:** 681 682设置混合类型 683 684**参数:** 685 686 | 名称 | 描述 | 687| -------- | -------- | 688| devId | 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 | 689| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | 690| type | 输入参数,指示混合类型。 | 691 692**返回:** 693 694DISPLAY_SUCCESS 表示执行成功。 695 696其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 697 698 699### SetLayerBuffer 700 701 702``` 703int32_t(* LayerFuncs::SetLayerBuffer) (uint32_t devId, uint32_t layerId, const BufferHandle *buffer, int32_t fence) 704``` 705 706**描述:** 707 708设置一个层的缓冲区。 709 710**参数:** 711 712 | 名称 | 描述 | 713| -------- | -------- | 714| devId | 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 | 715| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | 716| buffer | 输入参数,指示缓冲区句柄的指针,该指针包含所有用于合成的缓冲区的所有信息。 | 717| fence | 输入参数,同步文件的fd。 | 718 719**返回:** 720 721DISPLAY_SUCCESS 表示执行成功。 722 723其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 724 725 726### SetLayerColorDataSpace 727 728 729``` 730int32_t(* LayerFuncs::SetLayerColorDataSpace) (uint32_t devId, uint32_t layerId, ColorDataSpace colorSpace) 731``` 732 733**描述:** 734 735设置图层的颜色数据空间。 736 737**参数:** 738 739 | 名称 | 描述 | 740| -------- | -------- | 741| devId | 输入参数,指示需要操作的设备ID。 | 742| layerId | 输入参数,指示需要操作的图层ID。 | 743| colorSpace | 输入参数,表示需要设置的颜色数据空间。 | 744 745**返回:** 746 747DISPLAY_SUCCESS 表示执行成功。 748 749其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 750 751 752### SetLayerColorKey 753 754 755``` 756int32_t(* LayerFuncs::SetLayerColorKey) (uint32_t devId, uint32_t layerId, bool enable, uint32_t key) 757``` 758 759**描述:** 760 761设置图层colorkey属性,在图层叠加时使用。 762 763**参数:** 764 765 | 名称 | 描述 | 766| -------- | -------- | 767| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 768| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 769| enable | 输入参数,待设置的色键使能标识。 | 770| key | 输入参数,待设置的色键值,即颜色值。 | 771 772**返回:** 773 774DISPLAY_SUCCESS 表示执行成功。 775 776其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 777 778**参见:** 779 780[GetLayerColorKey](#getlayercolorkey) 781 782 783### SetLayerColorTransform 784 785 786``` 787int32_t(* LayerFuncs::SetLayerColorTransform) (uint32_t devId, uint32_t layerId, const float *matrix) 788``` 789 790**描述:** 791 792设置图层当前的颜色转换矩阵。 793 794**参数:** 795 796 | 名称 | 描述 | 797| -------- | -------- | 798| devId | 输入参数,指示需要操作的设备ID。 | 799| layerId | 输入参数,指示需要操作的图层ID。 | 800| matrix | 输入参数,表示需要设置的颜色转换模式。 | 801 802**返回:** 803 804DISPLAY_SUCCESS 表示执行成功。 805 806其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 807 808 809### SetLayerCompositionType 810 811 812``` 813int32_t(* LayerFuncs::SetLayerCompositionType) (uint32_t devId, uint32_t layerId, CompositionType type) 814``` 815 816**描述:** 817 818设置客户端期望的组合类型。 819 820**参数:** 821 822 | 名称 | 描述 | 823| -------- | -------- | 824| devId | 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 | 825| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | 826| type | 输入参数,指示客户端期望的组合类型。它可能随实现而变化。 | 827 828**返回:** 829 830DISPLAY_SUCCESS 表示执行成功。 831 832其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 833 834 835### SetLayerCompression 836 837 838``` 839int32_t(* LayerFuncs::SetLayerCompression) (uint32_t devId, uint32_t layerId, int32_t compType) 840``` 841 842**描述:** 843 844设置图层压缩功能。 845 846在特定场景下,需要对图像数据进行压缩,可设置启动或关闭图层压缩功能。 847 848**参数:** 849 850 | 名称 | 描述 | 851| -------- | -------- | 852| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 853| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 854| compType | 输入参数,图层压缩使能标识。 | 855 856**返回:** 857 858DISPLAY_SUCCESS 表示执行成功。 859 860其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 861 862**参见:** 863 864[GetLayerCompression](#getlayercompression) 865 866 867### SetLayerCrop 868 869 870``` 871int32_t(* LayerFuncs::SetLayerCrop) (uint32_t devId, uint32_t layerId, IRect *rect) 872``` 873 874**描述:** 875 876设置图层裁剪区域。 877 878**参数:** 879 880 | 名称 | 描述 | 881| -------- | -------- | 882| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 883| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 884| rect | 输入参数,待设置的裁剪区域。 | 885 886**返回:** 887 888DISPLAY_SUCCESS 表示执行成功。 889 890其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 891 892 893### SetLayerDirtyRegion 894 895 896``` 897int32_t(* LayerFuncs::SetLayerDirtyRegion) (uint32_t devId, uint32_t layerId, IRect *region) 898``` 899 900**描述:** 901 902设置图层刷新区域。 903 904GUI图形系统绘制好图像数据后,在调用Flush接口刷新屏幕之前需要设置图层刷新区域。 905 906**参数:** 907 908 | 名称 | 描述 | 909| -------- | -------- | 910| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 911| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 912| region | 输入参数,待设置的刷新区域。 | 913 914**返回:** 915 916DISPLAY_SUCCESS 表示执行成功。 917 918其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 919 920 921### SetLayerMetaData 922 923 924``` 925int32_t(* LayerFuncs::SetLayerMetaData) (uint32_t devId, uint32_t layerId, uint32_t num, const HDRMetaData *metaData) 926``` 927 928**描述:** 929 930设置图层的HDRmetaData。 931 932**参数:** 933 934 | 名称 | 描述 | 935| -------- | -------- | 936| devId | 输入参数,指示需要操作的设备ID。 | 937| layerId | 输入参数,指示需要操作的图层ID。 | 938| num | 输入参数,metadata 数组个数。 | 939| metaData | 输入参数,表示需要设置的 metadata 数组首地址。 | 940 941**返回:** 942 943DISPLAY_SUCCESS 表示执行成功。 944 945其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 946 947 948### SetLayerMetaDataSet 949 950 951``` 952int32_t(* LayerFuncs::SetLayerMetaDataSet) (uint32_t devId, uint32_t layerId, HDRMetadataKey key, uint32_t num, const uint8_t *metaData) 953``` 954 955**描述:** 956 957设置图层的metaData set。 958 959**参数:** 960 961 | 名称 | 描述 | 962| -------- | -------- | 963| devId | 输入参数,指示需要操作的设备ID。 | 964| layerId | 输入参数,指示需要操作的图层ID。 | 965| key | 输入参数,表示需要设置的[HDRMetadataKey](_display.md#hdrmetadatakey)。 | 966| num | 输入参数,metadata 数组个数。 | 967| metaData | 输入参数,表示需要设置的 metadata 数组首地址, 数据类型为uint8_t。 | 968 969**返回:** 970 971DISPLAY_SUCCESS 表示执行成功。 972 973其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 974 975 976### SetLayerPalette 977 978 979``` 980int32_t(* LayerFuncs::SetLayerPalette) (uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len) 981``` 982 983**描述:** 984 985设置图层调色板。 986 987**参数:** 988 989 | 名称 | 描述 | 990| -------- | -------- | 991| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 992| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 993| palette | 输入参数,待设置的图层调色板。 | 994| len | 输入参数,调色板长度。 | 995 996**返回:** 997 998DISPLAY_SUCCESS 表示执行成功。 999 1000其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 1001 1002**参见:** 1003 1004[GetLayerPalette](#getlayerpalette) 1005 1006 1007### SetLayerPreMulti 1008 1009 1010``` 1011int32_t(* LayerFuncs::SetLayerPreMulti) (uint32_t devId, uint32_t layerId, bool preMul) 1012``` 1013 1014**描述:** 1015 1016设置图层预乘。 1017 1018**参数:** 1019 1020 | 名称 | 描述 | 1021| -------- | -------- | 1022| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 1023| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 1024| preMul | 输入参数,待设置的图层预乘使能标识,1表示使能图层预乘,0表示不使能图层预乘。 | 1025 1026**返回:** 1027 1028DISPLAY_SUCCESS 表示执行成功。 1029 1030其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 1031 1032**参见:** 1033 1034[GetLayerPreMulti](#getlayerpremulti) 1035 1036 1037### SetLayerSize 1038 1039 1040``` 1041int32_t(* LayerFuncs::SetLayerSize) (uint32_t devId, uint32_t layerId, IRect *rect) 1042``` 1043 1044**描述:** 1045 1046设置图层大小。 1047 1048**参数:** 1049 1050 | 名称 | 描述 | 1051| -------- | -------- | 1052| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 1053| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 1054| rect | 输入参数,待设置的图层大小,单位为像素。 | 1055 1056**返回:** 1057 1058DISPLAY_SUCCESS 表示执行成功。 1059 1060其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 1061 1062**参见:** 1063 1064[GetLayerSize](#getlayersize) 1065 1066 1067### SetLayerTunnelHandle 1068 1069 1070``` 1071int32_t(* LayerFuncs::SetLayerTunnelHandle) (uint32_t devId, uint32_t layerId, ExtDataHandle *handle) 1072``` 1073 1074**描述:** 1075 1076设置图层的tunnel句柄。 1077 1078**参数:** 1079 1080 | 名称 | 描述 | 1081| -------- | -------- | 1082| devId | 输入参数,指示需要操作的设备ID。 | 1083| layerId | 输入参数,指示需要操作的图层ID。 | 1084| handle | 输入参数,表示需要设置的句柄。 | 1085 1086**返回:** 1087 1088DISPLAY_SUCCESS 表示执行成功。 1089 1090其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 1091 1092 1093### SetLayerVisible 1094 1095 1096``` 1097int32_t(* LayerFuncs::SetLayerVisible) (uint32_t devId, uint32_t layerId, bool visible) 1098``` 1099 1100**描述:** 1101 1102设置图层是否可见。 1103 1104不可见情况下图层不显示在屏幕上,可见情况下图层显示在屏幕上。 1105 1106**参数:** 1107 1108 | 名称 | 描述 | 1109| -------- | -------- | 1110| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 1111| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 1112| visible | 输入参数,待设置的图层可见标识,设置true表示图层可见,设置false表示图层不可见。 | 1113 1114**返回:** 1115 1116DISPLAY_SUCCESS 表示执行成功。 1117 1118其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 1119 1120**参见:** 1121 1122[GetLayerVisibleState](#getlayervisiblestate) 1123 1124 1125### SetLayerVisibleRegion 1126 1127 1128``` 1129int32_t(* LayerFuncs::SetLayerVisibleRegion) (uint32_t devId, uint32_t layerId, uint32_t num, IRect *rect) 1130``` 1131 1132**描述:** 1133 1134设置一个图层的可见区域 1135 1136**参数:** 1137 1138 | 名称 | 描述 | 1139| -------- | -------- | 1140| devId | 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 | 1141| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | 1142| num | 输入参数,指定rect的计数,该区域包含多个[IRect](_i_rect.md),num表示该区域中有多少个rect区域。 | 1143| rect | 输出参数,rectes对象的指针。 | 1144 1145**返回:** 1146 1147DISPLAY_SUCCESS 表示执行成功。 1148 1149其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 1150 1151 1152### SetLayerZorder 1153 1154 1155``` 1156int32_t(* LayerFuncs::SetLayerZorder) (uint32_t devId, uint32_t layerId, uint32_t zorder) 1157``` 1158 1159**描述:** 1160 1161设置图层Z轴次序。 1162 1163图层的Z序值越大,图层越靠上显示。 1164 1165**参数:** 1166 1167 | 名称 | 描述 | 1168| -------- | -------- | 1169| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 1170| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 1171| zorder | 输入参数,待设置的图层Z序,为整数值,取值范围为[0, 255],值越大图层越往上排列。 | 1172 1173**返回:** 1174 1175DISPLAY_SUCCESS 表示执行成功。 1176 1177其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 1178 1179**参见:** 1180 1181[GetLayerZorder](#getlayerzorder) 1182 1183 1184### SetTransformMode 1185 1186 1187``` 1188int32_t(* LayerFuncs::SetTransformMode) (uint32_t devId, uint32_t layerId, TransformType type) 1189``` 1190 1191**描述:** 1192 1193设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。 1194 1195**参数:** 1196 1197 | 名称 | 描述 | 1198| -------- | -------- | 1199| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 1200| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 1201| type | 输入参数,待设置的图层变换模式。 | 1202 1203**返回:** 1204 1205DISPLAY_SUCCESS 表示执行成功。 1206 1207其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 1208 1209 1210### SnapShot 1211 1212 1213``` 1214int32_t(* LayerFuncs::SnapShot) (uint32_t devId, LayerBuffer *buffer) 1215``` 1216 1217**描述:** 1218 1219实现抓图功能。 1220 1221本函数将显示设备上的图像数据截图保存到buffer中,用于调试、应用截图等场景。 1222 1223otherwise. 1224 1225**参数:** 1226 1227 | 名称 | 描述 | 1228| -------- | -------- | 1229| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 1230| buffer | 输出参数,保存截屏的buffer信息。 | 1231 1232**返回:** 1233 1234DISPLAY_SUCCESS 表示执行成功。 1235 1236其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 1237 1238 1239### WaitForVBlank 1240 1241 1242``` 1243int32_t(* LayerFuncs::WaitForVBlank) (uint32_t devId, uint32_t layerId, int32_t timeOut) 1244``` 1245 1246**描述:** 1247 1248实现等待帧消隐期到来功能。 1249 1250该函数会让系统等待,直到帧消隐期到来,用于软件和硬件之间的同步。 1251 1252**参数:** 1253 1254 | 名称 | 描述 | 1255| -------- | -------- | 1256| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | 1257| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | 1258| timeOut | 输入参数,超时时间,在设置的超时时间后,没有等到帧消隐期到来则超时返回。 | 1259 1260**返回:** 1261 1262DISPLAY_SUCCESS 表示执行成功。 1263 1264其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 1265