• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# IDisplayComposer
2
3
4## 概述
5
6显示合成接口声明。
7
8主要提供注册热插拔事件回调、获取显示设备能力集等功能,具体方法使用详见函数说明。
9
10**起始版本:** 3.2
11
12**相关模块:**[Display](_display_v10.md)
13
14
15## 汇总
16
17
18### Public 成员函数
19
20| 名称 | 描述 |
21| -------- | -------- |
22| [RegHotPlugCallback](#reghotplugcallback) ([in] [IHotPlugCallback](interface_i_hot_plug_callback_v10.md) cb) | 注册热插拔事件回调。 |
23| [SetClientBufferCacheCount](#setclientbuffercachecount) ([in] unsigned int devId, [in] unsigned int count) | 设置显示设备的客户端缓冲区缓存计数。 |
24| [RegDisplayVBlankCallback](#regdisplayvblankcallback) ([in] unsigned int devId, [in] [IVBlankCallback](interface_i_v_blank_callback_v10.md) cb) | 注册VBlank事件回调。 |
25| [GetDisplayCapability](#getdisplaycapability) ([in] unsigned int devId, [out] struct [DisplayCapability](_display_capability_v10.md) info) | 获取显示设备能力集。 |
26| [GetDisplaySupportedModes](#getdisplaysupportedmodes) ([in] unsigned int devId, [out] struct [DisplayModeInfo](_display_mode_info_v10.md)[] modes) | 获取显示设备支持的显示模式信息。 |
27| [GetDisplayMode](#getdisplaymode) ([in] unsigned int devId, [out] unsigned int modeId) | 获取显示设备当前的显示模式。 |
28| [SetDisplayMode](#setdisplaymode) ([in] unsigned int devId, [in] unsigned int modeId) | 设置显示设备的显示模式。 |
29| [GetDisplayPowerStatus](#getdisplaypowerstatus) ([in] unsigned int devId, [out] enum [DispPowerStatus](_display_v10.md#disppowerstatus) status) | 获取显示设备当前的电源状态。 |
30| [SetDisplayPowerStatus](#setdisplaypowerstatus) ([in] unsigned int devId, [in] enum [DispPowerStatus](_display_v10.md#disppowerstatus) status) | 设置显示设备当前的电源状态。 |
31| [GetDisplayBacklight](#getdisplaybacklight) ([in] unsigned int devId, [out] unsigned int level) | 获取显示设备当前的背光值。 |
32| [SetDisplayBacklight](#setdisplaybacklight) ([in] unsigned int devId, [in] unsigned int level) | 设置显示设备当前的背光值。 |
33| [SetDisplayVsyncEnabled](#setdisplayvsyncenabled) ([in] unsigned int devId, [in] boolean enabled) | 使能垂直同步信号。 |
34| [CreateLayer](#createlayer) ([in] unsigned int devId, [in] struct [LayerInfo](_layer_info_v10.md) layerInfo, [in] unsigned int cacheCount, [out] unsigned int layerId) | 打开图层。 |
35| [DestroyLayer](#destroylayer) ([in] unsigned int devId, [in] unsigned int layerId) | 在指定的显示设备上打开图层。 |
36| [SetDisplayClientCrop](#setdisplayclientcrop) ([in] unsigned int devId, [in] struct [IRect](_i_rect_v10.md) rect) | 设置显示设备的裁剪区域。 |
37| [GetDisplayReleaseFence](#getdisplayreleasefence) ([in] unsigned int devId, [out] unsigned int[] layers, [out] HdifdParcelable[] fences) | 获取显示图层fence。 |
38| [CreateVirtualDisplay](#createvirtualdisplay) ([in] unsigned int width, [in] unsigned int height, [out] int format, [out] unsigned int devId) | 创建虚拟显示设备。 |
39| [DestroyVirtualDisplay](#destroyvirtualdisplay) ([in] unsigned int devId) | 销毁虚拟显示设备。 |
40| [SetVirtualDisplayBuffer](#setvirtualdisplaybuffer) ([in] unsigned int devId, [in] NativeBuffer buffer, [in] HdifdParcelable fence) | 设置虚拟屏的输出缓存。 |
41| [SetDisplayProperty](#setdisplayproperty) ([in] unsigned int devId, [in] unsigned int id, [in] unsigned long value) | 设置显示设备属性值。 |
42| [GetDisplayProperty](#getdisplayproperty) ([in] unsigned int devId, [in] unsigned int id, [out] unsigned long value) | 获取显示设备属性值。 |
43| [InitCmdRequest](#initcmdrequest) ([in] SharedMemQueue< int > request) | 初始化命令请求对象。 |
44| [CmdRequest](#cmdrequest) ([in] unsigned int inEleCnt, [in] struct [HdifdInfo](_hdifd_info_v10.md)[] inFds, [out] unsigned int outEleCnt, [out] struct [HdifdInfo](_hdifd_info_v10.md)[] outFds) | 发送命令请求。 |
45| [GetCmdReply](#getcmdreply) ([out] SharedMemQueue< int > reply) | 获取命令请求的返回结果。 |
46
47
48## 成员函数说明
49
50
51### CmdRequest()
52
53```
54IDisplayComposer::CmdRequest ([in] unsigned int inEleCnt, [in] struct HdifdInfo[] inFds, [out] unsigned int outEleCnt, [out] struct HdifdInfo[] outFds)
55```
56
57**描述**
58
59
60发送命令请求。
61
62**起始版本:** 3.2
63
64**参数:**
65
66| 名称 | 描述 |
67| -------- | -------- |
68| inEleCnt | 表示元素的个数。 |
69| inFds | 表示 HdifdParcelable 的 ID。 |
70| outEleCnt | 指示要获取的元素数。 |
71| outFds | 指示要获取的 HdifdParcelable 的 ID。 |
72
73**返回:**
74
75DISPLAY_SUCCESS 表示执行成功。
76
77其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
78
79
80### CreateLayer()
81
82```
83IDisplayComposer::CreateLayer ([in] unsigned int devId, [in] struct LayerInfo layerInfo, [in] unsigned int cacheCount, [out] unsigned int layerId)
84```
85
86**描述**
87
88
89打开图层。
90
91GUI在使用图层时,需要先根据图层信息打开图层,打开图层成功可获得图层ID,根据图层ID使用图层各接口。
92
93**起始版本:** 3.2
94
95**参数:**
96
97| 名称 | 描述 |
98| -------- | -------- |
99| devId | 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备,即取值范围0~4。 |
100| layerInfo | 图层信息,上层GUI打开图层时需传递图层信息,包括图层类型,图层大小,像素格式等信息。 |
101| cacheCount | 缓冲区缓存的计数。 |
102| layerId | 图层ID,打开图层成功后返回给GUI的图层ID,用于标识唯一的图层。 |
103
104**返回:**
105
106DISPLAY_SUCCESS 表示执行成功。
107
108其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
109
110**参见:**
111
112CloseLayer
113
114
115### CreateVirtualDisplay()
116
117```
118IDisplayComposer::CreateVirtualDisplay ([in] unsigned int width, [in] unsigned int height, [out] int format, [out] unsigned int devId)
119```
120
121**描述**
122
123
124创建虚拟显示设备。
125
126该接口用于创建一个虚拟显示设备。
127
128**起始版本:** 3.2
129
130**参数:**
131
132| 名称 | 描述 |
133| -------- | -------- |
134| width | 指定显示设备的像素宽度。 |
135| height | 指定显示设备的像素高度。 |
136| format | 指定显示设备的像素格式。 详情参考[PixelFormat](_display_v10.md#pixelformat),接口实现层可以根据硬件需求,修改format并返回给图形服务。 |
137| devId | 用于接口层返回创建的设备ID。 |
138
139**返回:**
140
141DISPLAY_SUCCESS 表示执行成功。
142
143其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
144
145
146### DestroyLayer()
147
148```
149IDisplayComposer::DestroyLayer ([in] unsigned int devId, [in] unsigned int layerId)
150```
151
152**描述**
153
154
155在指定的显示设备上打开图层。
156
157在 GUI 上使用图层之前,必须根据图层信息打开图层。在图层 打开后,可以获取图层 ID,然后根据图层 ID 使用其他功能。
158
159**起始版本:** 3.2
160
161**参数:**
162
163| 名称 | 描述 |
164| -------- | -------- |
165| devId| 显示设备的ID。<br/>取值范围为  0 到 4,其中 0 表示第一个显示设备,4 表示最后一个显示设备。 |
166| layerId | 指示指向唯一标识层的层 ID 的指针。返回图层 ID到图层成功打开后添加到 GUI。 |
167
168**返回:**
169
170DISPLAY_SUCCESS 表示执行成功。
171
172其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
173
174
175### DestroyVirtualDisplay()
176
177```
178IDisplayComposer::DestroyVirtualDisplay ([in] unsigned int devId)
179```
180
181**描述**
182
183
184销毁虚拟显示设备。
185
186该接口用于销毁指定的虚拟显示设备。
187
188**起始版本:** 3.2
189
190**参数:**
191
192| 名称 | 描述 |
193| -------- | -------- |
194| devId | 表示需要操作的设备ID。 |
195
196**返回:**
197
198DISPLAY_SUCCESS 表示执行成功。
199
200其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
201
202
203### GetCmdReply()
204
205```
206IDisplayComposer::GetCmdReply ([out] SharedMemQueue< int > reply)
207```
208
209**描述**
210
211
212获取命令请求的返回结果。
213
214**起始版本:** 3.2
215
216**参数:**
217
218| 名称 | 描述 |
219| -------- | -------- |
220| reply | 表示返回的结果。 |
221
222**返回:**
223
224DISPLAY_SUCCESS 表示执行成功。
225
226其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
227
228
229### GetDisplayBacklight()
230
231```
232IDisplayComposer::GetDisplayBacklight ([in] unsigned int devId, [out] unsigned int level)
233```
234
235**描述**
236
237
238获取显示设备当前的背光值。
239
240图形服务可以通过该接口获取设置显示设备的背光值。
241
242**起始版本:** 3.2
243
244**参数:**
245
246| 名称 | 描述 |
247| -------- | -------- |
248| devId | 表示需要操作的设备ID。 |
249| level | 保存对应设备的背光值,由接口实现层进行写入。 |
250
251**返回:**
252
253DISPLAY_SUCCESS 表示执行成功。
254
255其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
256
257
258### GetDisplayCapability()
259
260```
261IDisplayComposer::GetDisplayCapability ([in] unsigned int devId, [out] struct DisplayCapability info)
262```
263
264**描述**
265
266
267获取显示设备能力集。
268
269图形服务可以通过该接口获取显示设备具备哪些显示能力。
270
271**起始版本:** 3.2
272
273**参数:**
274
275| 名称 | 描述 |
276| -------- | -------- |
277| devId | 表示需要操作的设备ID。 |
278| info | 设备支持的能力集信息,详情参考 [DisplayCapability](_display_capability_v10.md)。 |
279
280**返回:**
281
282DISPLAY_SUCCESS 表示执行成功。
283
284其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
285
286
287### GetDisplayMode()
288
289```
290IDisplayComposer::GetDisplayMode ([in] unsigned int devId, [out] unsigned int modeId)
291```
292
293**描述**
294
295
296获取显示设备当前的显示模式。
297
298图形服务可以通过该接口获取显示设备当前的显示模式,该模式由接口实现层进行数据的写入。
299
300**起始版本:** 3.2
301
302**参数:**
303
304| 名称 | 描述 |
305| -------- | -------- |
306| devId | 表示需要操作的设备ID。 |
307| modeId | 存放当前设备的显示模式ID。 |
308
309**返回:**
310
311DISPLAY_SUCCESS 表示执行成功。
312
313其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
314
315
316### GetDisplayPowerStatus()
317
318```
319IDisplayComposer::GetDisplayPowerStatus ([in] unsigned int devId, [out] enum DispPowerStatus status)
320```
321
322**描述**
323
324
325获取显示设备当前的电源状态。
326
327图形服务可以通过该接口获取设置显示设备的电源状态,该电源状态由接口实现层进行状态的写入。
328
329**起始版本:** 3.2
330
331**参数:**
332
333| 名称 | 描述 |
334| -------- | -------- |
335| devId | 表示需要操作的设备ID。 |
336| status | 保存对应设备的电源状态,具体电源状态查看[DispPowerStatus](_display_v10.md#disppowerstatus)。 |
337
338**返回:**
339
340DISPLAY_SUCCESS 表示执行成功。
341
342其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
343
344
345### GetDisplayProperty()
346
347```
348IDisplayComposer::GetDisplayProperty ([in] unsigned int devId, [in] unsigned int id, [out] unsigned long value)
349```
350
351**描述**
352
353
354获取显示设备属性值。
355
356图形服务可以通过该接口获取显示设备具体的属性值。
357
358**起始版本:** 3.2
359
360**参数:**
361
362| 名称 | 描述 |
363| -------- | -------- |
364| devId | 指示需要操作的设备ID。 |
365| id | 由接口{\@Link GetDisplayCapability}返回的属性ID。 |
366| value | 属性ID对应的属性值,由接口实现层写入。 |
367
368**返回:**
369
370DISPLAY_SUCCESS 表示执行成功。
371
372其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
373
374
375### GetDisplayReleaseFence()
376
377```
378IDisplayComposer::GetDisplayReleaseFence ([in] unsigned int devId, [out] unsigned int[] layers, [out] HdifdParcelable[] fences)
379```
380
381**描述**
382
383
384获取显示图层fence。
385
386图形服务在调用接口Commit后,需要通过该接口获取图层的fence信息。
387
388**起始版本:** 3.2
389
390**参数:**
391
392| 名称 | 描述 |
393| -------- | -------- |
394| devId | 表示需要操作的设备ID。 |
395| layers | 图层首地址,指向图层数组的首地址。 |
396| fences | fence首地址,指向fence数组的首地址。 |
397
398**返回:**
399
400DISPLAY_SUCCESS 表示执行成功。
401
402其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
403
404
405### GetDisplaySupportedModes()
406
407```
408IDisplayComposer::GetDisplaySupportedModes ([in] unsigned int devId, [out] struct DisplayModeInfo[] modes)
409```
410
411**描述**
412
413
414获取显示设备支持的显示模式信息。
415
416图形服务可以通过该接口获取到显示设备支持哪些显示模式。
417
418**起始版本:** 3.2
419
420**参数:**
421
422| 名称 | 描述 |
423| -------- | -------- |
424| devId | 表示需要操作的设备ID。 |
425| modes | 设备支持的所有模式信息,包括所有能支持的分辨率和刷新率,每一个模式实现层都有一个ID与之对应,在获取当前模式 和设置当前模式时都会使用到,详情参考 [DisplayModeInfo](_display_mode_info_v10.md)。 |
426
427**返回:**
428
429DISPLAY_SUCCESS 表示执行成功。
430
431其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
432
433
434### InitCmdRequest()
435
436```
437IDisplayComposer::InitCmdRequest ([in] SharedMemQueue< int > request)
438```
439
440**描述**
441
442
443初始化命令请求对象。
444
445**起始版本:** 3.2
446
447**参数:**
448
449| 名称 | 描述 |
450| -------- | -------- |
451| request | 指示要初始化的 SharedMemQueue。 |
452
453**返回:**
454
455DISPLAY_SUCCESS 表示执行成功。
456
457其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
458
459
460### RegDisplayVBlankCallback()
461
462```
463IDisplayComposer::RegDisplayVBlankCallback ([in] unsigned int devId, [in] IVBlankCallback cb)
464```
465
466**描述**
467
468
469注册VBlank事件回调,当有VBlank事件发生时接口实现层需要回调注册的接口。
470
471**起始版本:** 3.2
472
473**参数:**
474
475| 名称 | 描述 |
476| -------- | -------- |
477| devId | 表示需要操作的设备ID。 |
478| cb | VBlank事件回调实例,当有VBlank事件发生时并且DisplayVsync处于Enable状态,接口实现层需要通过该实例通知图形服务。 |
479
480**返回:**
481
482DISPLAY_SUCCESS 表示执行成功。
483
484其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
485
486
487### RegHotPlugCallback()
488
489```
490IDisplayComposer::RegHotPlugCallback ([in] IHotPlugCallback cb)
491```
492
493**描述**
494
495
496注册热插拔事件回调,当有热插拔事件发生时接口实现层需要回调注册的接口,通过该实例通知图形服务。
497
498**起始版本:** 3.2
499
500**参数:**
501
502| 名称 | 描述 |
503| -------- | -------- |
504| cb | 热插拔事件回调实例。 |
505
506**返回:**
507
508DISPLAY_SUCCESS 表示执行成功。
509
510其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
511
512
513### SetClientBufferCacheCount()
514
515```
516IDisplayComposer::SetClientBufferCacheCount ([in] unsigned int devId, [in] unsigned int count)
517```
518
519**描述**
520
521
522设置显示设备的客户端缓冲区缓存计数。
523
524**起始版本:** 3.2
525
526**参数:**
527
528| 名称 | 描述 |
529| -------- | -------- |
530| devId | 表示需要操作的设备ID。 |
531| count | 客户端缓冲区缓存计数。 |
532
533**返回:**
534
535DISPLAY_SUCCESS 表示执行成功。
536
537其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
538
539
540### SetDisplayBacklight()
541
542```
543IDisplayComposer::SetDisplayBacklight ([in] unsigned int devId, [in] unsigned int level)
544```
545
546**描述**
547
548
549设置显示设备当前的背光值。
550
551图形服务可以通过该接口获取设置显示设备的背光值。
552
553**起始版本:** 3.2
554
555**参数:**
556
557| 名称 | 描述 |
558| -------- | -------- |
559| devId | 表示需要操作的设备ID。 |
560| level | 表示需要设置的背光值,背光值范围0~255。 |
561
562**返回:**
563
564DISPLAY_SUCCESS 表示执行成功。
565
566其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
567
568
569### SetDisplayClientCrop()
570
571```
572IDisplayComposer::SetDisplayClientCrop ([in] unsigned int devId, [in] struct IRect rect)
573```
574
575**描述**
576
577
578设置显示设备的裁剪区域。
579
580图形服务可以通过该接口设置显示设备的ClientBuffer的裁剪区域,裁剪区域不能超过ClientBuffer的大小。
581
582**起始版本:** 3.2
583
584**参数:**
585
586| 名称 | 描述 |
587| -------- | -------- |
588| devId | 表示需要操作的设备ID。 |
589| rect | ClientBuffer的裁剪区域。 |
590
591**返回:**
592
593DISPLAY_SUCCESS 表示执行成功。
594
595其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
596
597
598### SetDisplayMode()
599
600```
601IDisplayComposer::SetDisplayMode ([in] unsigned int devId, [in] unsigned int modeId)
602```
603
604**描述**
605
606
607设置显示设备的显示模式。
608
609图形服务可以通过该接口获取设置显示设备的显示模式。
610
611**起始版本:** 3.2
612
613**参数:**
614
615| 名称 | 描述 |
616| -------- | -------- |
617| devId | 表示需要操作的设备ID。 |
618| modeId | 指明需要设置的模式ID,接口实现层将设备切换到该参数对应的显示模式。 |
619
620**返回:**
621
622DISPLAY_SUCCESS 表示执行成功。
623
624其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
625
626
627### SetDisplayPowerStatus()
628
629```
630IDisplayComposer::SetDisplayPowerStatus ([in] unsigned int devId, [in] enum DispPowerStatus status)
631```
632
633**描述**
634
635
636设置显示设备当前的电源状态。
637
638图形服务可以通过该接口获取设置显示设备的电源状态。
639
640**起始版本:** 3.2
641
642**参数:**
643
644| 名称 | 描述 |
645| -------- | -------- |
646| devId | 表示需要操作的设备ID。 |
647| status | 表示需要设置的电源状态,具体电源状态查看[DispPowerStatus](_display_v10.md#disppowerstatus)。 |
648
649**返回:**
650
651DISPLAY_SUCCESS 表示执行成功。
652
653其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
654
655
656### SetDisplayProperty()
657
658```
659IDisplayComposer::SetDisplayProperty ([in] unsigned int devId, [in] unsigned int id, [in] unsigned long value)
660```
661
662**描述**
663
664
665设置显示设备属性值。
666
667图形服务可以通过该接口设置显示设备具体的属性值。
668
669**起始版本:** 3.2
670
671**参数:**
672
673| 名称 | 描述 |
674| -------- | -------- |
675| devId | 表示需要操作的设备ID。 |
676| id | 由接口[GetDisplayCapability](#getdisplaycapability)返回属性ID。 |
677| value | 需要设置的属性值。 |
678
679**返回:**
680
681DISPLAY_SUCCESS 表示执行成功。
682
683其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
684
685
686### SetDisplayVsyncEnabled()
687
688```
689IDisplayComposer::SetDisplayVsyncEnabled ([in] unsigned int devId, [in] boolean enabled)
690```
691
692**描述**
693
694
695使能垂直同步信号。
696
697图形服务可以通过该接口使能或取消垂直同步信号,当有垂直同步信号产生时,接口实现层需要回调图形服务通过RegDisplayVBlankCallback注册的 VBlankCallback 回调。 图形服务在需要刷新显示时需要使能垂直同步信号,在收到**VBlankCallback**事件回调时再进行合成送显,不需要刷新显示时需要取消垂直同步信号。
698
699**起始版本:** 3.2
700
701**参数:**
702
703| 名称 | 描述 |
704| -------- | -------- |
705| devId | 表示需要操作的设备ID。 |
706| enabled | 使能状态,true表示能,false表示不能。 |
707
708**返回:**
709
710DISPLAY_SUCCESS 表示执行成功。
711
712其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
713
714
715### SetVirtualDisplayBuffer()
716
717```
718IDisplayComposer::SetVirtualDisplayBuffer ([in] unsigned int devId, [in] NativeBuffer buffer, [in] HdifdParcelable fence)
719```
720
721**描述**
722
723
724设置虚拟屏的输出缓存。
725
726该接口用于设置虚拟屏输出缓存,接口实现层需要将虚拟屏的输出放入到该缓存中,接口实现层需要等待同步栅栏发送信号后才能使用缓存。
727
728**起始版本:** 3.2
729
730**参数:**
731
732| 名称 | 描述 |
733| -------- | -------- |
734| devId | 表示需要操作的设备ID。 |
735| buffer | 输出缓存。 |
736| fence | 同步栅栏。 |
737
738**返回:**
739
740DISPLAY_SUCCESS 表示执行成功。
741
742其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
743