• 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### CreateLayer()
59
60```
61IDisplayComposer::CreateLayer ([in] unsigned int devId, [in] struct LayerInfo layerInfo, [in] unsigned int cacheCount, [out] unsigned int layerId )
62```
63**描述**
64打开图层。
65
66GUI在使用图层时,需要先根据图层信息打开图层,打开图层成功可获得图层ID,根据图层ID使用图层各接口。
67
68**起始版本:** 3.2
69
70**参数:**
71
72| 名称 | 描述 |
73| -------- | -------- |
74| devId | 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备,即取值范围0~4。  |
75| layerInfo | 图层信息,上层GUI打开图层时需传递图层信息,包括图层类型,图层大小,像素格式等信息。  |
76| layerId | 图层ID,打开图层成功后返回给GUI的图层ID,用于标识唯一的图层。 |
77
78**返回:**
79
80DISPLAY_SUCCESS 表示执行成功。
81
82其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
83
84**参见:**
85
86CloseLayer
87
88
89### CreateVirtualDisplay()
90
91```
92IDisplayComposer::CreateVirtualDisplay ([in] unsigned int width, [in] unsigned int height, [out] int format, [out] unsigned int devId )
93```
94**描述**
95创建虚拟显示设备。
96
97该接口用于创建一个虚拟显示设备。
98
99**起始版本:** 3.2
100
101**参数:**
102
103| 名称 | 描述 |
104| -------- | -------- |
105| width | 指定显示设备的像素宽度。  |
106| height | 指定显示设备的像素高度。  |
107| format | 指定显示设备的像素格式。 详情参考[PixelFormat](_display_v10.md#pixelformat),接口实现层可以根据硬件需求,修改format并返回给图形服务。  |
108| devId | 用于接口层返回创建的设备ID。 |
109
110**返回:**
111
112DISPLAY_SUCCESS 表示执行成功。
113
114其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
115
116
117### DestroyLayer()
118
119```
120IDisplayComposer::DestroyLayer ([in] unsigned int devId, [in] unsigned int layerId )
121```
122**描述**
123在指定的显示设备上打开图层。
124
125在 GUI 上使用图层之前,必须根据图层信息打开图层。在图层 打开后,可以获取图层 ID,然后根据图层 ID 使用其他功能。
126
127**起始版本:** 3.2
128
129**参数:**
130
131| 名称 | 描述 |
132| -------- | -------- |
133| devId:显示设备的ID。取值范围为 | 0 到 4,其中 0 表示第一个显示设备,4 表示最后一个显示设备。  |
134| layerId | 指示指向唯一标识层的层 ID 的指针。返回图层 ID到图层成功打开后添加到 GUI。 |
135
136**返回:**
137
138DISPLAY_SUCCESS 表示执行成功。
139
140其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
141
142
143### DestroyVirtualDisplay()
144
145```
146IDisplayComposer::DestroyVirtualDisplay ([in] unsigned int devId)
147```
148**描述**
149销毁虚拟显示设备。
150
151该接口用于销毁指定的虚拟显示设备。
152
153**起始版本:** 3.2
154
155**参数:**
156
157| 名称 | 描述 |
158| -------- | -------- |
159| devId | 表示需要操作的设备ID。 |
160
161**返回:**
162
163DISPLAY_SUCCESS 表示执行成功。
164
165其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
166
167
168### GetCmdReply()
169
170```
171IDisplayComposer::GetCmdReply ([out] SharedMemQueue< int > reply)
172```
173
174
175### GetDisplayBacklight()
176
177```
178IDisplayComposer::GetDisplayBacklight ([in] unsigned int devId, [out] unsigned int level )
179```
180**描述**
181获取显示设备当前的背光值。
182
183图形服务可以通过该接口获取设置显示设备的背光值。
184
185**起始版本:** 3.2
186
187**参数:**
188
189| 名称 | 描述 |
190| -------- | -------- |
191| devId | 表示需要操作的设备ID。  |
192| level | 保存对应设备的背光值,由接口实现层进行写入。 |
193
194**返回:**
195
196DISPLAY_SUCCESS 表示执行成功。
197
198其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
199
200
201### GetDisplayCapability()
202
203```
204IDisplayComposer::GetDisplayCapability ([in] unsigned int devId, [out] struct DisplayCapability info )
205```
206**描述**
207获取显示设备能力集。
208
209图形服务可以通过该接口获取显示设备具备哪些显示能力。
210
211**起始版本:** 3.2
212
213**参数:**
214
215| 名称 | 描述 |
216| -------- | -------- |
217| devId | 表示需要操作的设备ID。  |
218| info | 设备支持的能力集信息,详情参考 [DisplayCapability](_display_capability_v10.md)。 |
219
220**返回:**
221
222DISPLAY_SUCCESS 表示执行成功。
223
224其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
225
226
227### GetDisplayMode()
228
229```
230IDisplayComposer::GetDisplayMode ([in] unsigned int devId, [out] unsigned int modeId )
231```
232**描述**
233获取显示设备当前的显示模式。
234
235图形服务可以通过该接口获取显示设备当前的显示模式,该模式由接口实现层进行数据的写入。
236
237**起始版本:** 3.2
238
239**参数:**
240
241| 名称 | 描述 |
242| -------- | -------- |
243| devId | 表示需要操作的设备ID。  |
244| modeId | 存放当前设备的显示模式ID。 |
245
246**返回:**
247
248DISPLAY_SUCCESS 表示执行成功。
249
250其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
251
252
253### GetDisplayPowerStatus()
254
255```
256IDisplayComposer::GetDisplayPowerStatus ([in] unsigned int devId, [out] enum DispPowerStatus status )
257```
258**描述**
259获取显示设备当前的电源状态。
260
261图形服务可以通过该接口获取设置显示设备的电源状态,该电源状态由接口实现层进行状态的写入。
262
263**起始版本:** 3.2
264
265**参数:**
266
267| 名称 | 描述 |
268| -------- | -------- |
269| devId | 表示需要操作的设备ID。  |
270| status | 保存对应设备的电源状态,具体电源状态查看[DispPowerStatus](_display_v10.md#disppowerstatus)。 |
271
272**返回:**
273
274DISPLAY_SUCCESS 表示执行成功。
275
276其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
277
278
279### GetDisplayProperty()
280
281```
282IDisplayComposer::GetDisplayProperty ([in] unsigned int devId, [in] unsigned int id, [out] unsigned long value )
283```
284**描述**
285获取显示设备属性值。
286
287图形服务可以通过该接口获取显示设备具体的属性值。
288
289**起始版本:** 3.2
290
291**参数:**
292
293| 名称 | 描述 |
294| -------- | -------- |
295| devId | 指示需要操作的设备ID。  |
296| id | 由接口{\@Link GetDisplayCapability}返回的属性ID。  |
297| value | 属性ID对应的属性值,由接口实现层写入。 |
298
299**返回:**
300
301DISPLAY_SUCCESS 表示执行成功。
302
303其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
304
305
306### GetDisplayReleaseFence()
307
308```
309IDisplayComposer::GetDisplayReleaseFence ([in] unsigned int devId, [out] unsigned int[] layers, [out] HdifdParcelable[] fences )
310```
311**描述**
312获取显示图层fence。
313
314图形服务在调用接口Commit后,需要通过该接口获取图层的fence信息。
315
316**起始版本:** 3.2
317
318**参数:**
319
320| 名称 | 描述 |
321| -------- | -------- |
322| devId | 表示需要操作的设备ID。  |
323| layers | 图层首地址,指向图层数组的首地址。  |
324| fences | fence首地址,指向fence数组的首地址。 |
325
326**返回:**
327
328DISPLAY_SUCCESS 表示执行成功。
329
330其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
331
332
333### GetDisplaySupportedModes()
334
335```
336IDisplayComposer::GetDisplaySupportedModes ([in] unsigned int devId, [out] struct DisplayModeInfo[] modes )
337```
338**描述**
339获取显示设备支持的显示模式信息。
340
341图形服务可以通过该接口获取到显示设备支持哪些显示模式。
342
343**起始版本:** 3.2
344
345**参数:**
346
347| 名称 | 描述 |
348| -------- | -------- |
349| devId | 表示需要操作的设备ID。  |
350| modes | 设备支持的所有模式信息,包括所有能支持的分辨率和刷新率,每一个模式实现层都有一个ID与之对应,在获取当前模式 和设置当前模式时都会使用到,详情参考 [DisplayModeInfo](_display_mode_info_v10.md)。 |
351
352**返回:**
353
354DISPLAY_SUCCESS 表示执行成功。
355
356其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
357
358
359### InitCmdRequest()
360
361```
362IDisplayComposer::InitCmdRequest ([in] SharedMemQueue< int > request)
363```
364
365
366### RegDisplayVBlankCallback()
367
368```
369IDisplayComposer::RegDisplayVBlankCallback ([in] unsigned int devId, [in] IVBlankCallback cb )
370```
371**描述**
372注册VBlank事件回调。
373
374注册VBlank事件回调,当有VBlank事件发生时接口实现层需要回调注册的接口。
375
376**起始版本:** 3.2
377
378**参数:**
379
380| 名称 | 描述 |
381| -------- | -------- |
382| devId | 表示需要操作的设备ID。  |
383| cb | VBlank事件回调实例,当有VBlank事件发生时并且DisplayVsync处于Enable状态,接口实现层需要通过该实例通知图形服务。 |
384
385**返回:**
386
387DISPLAY_SUCCESS 表示执行成功。
388
389其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
390
391
392### RegHotPlugCallback()
393
394```
395IDisplayComposer::RegHotPlugCallback ([in] IHotPlugCallback cb)
396```
397**描述**
398注册热插拔事件回调。
399
400注册热插拔事件回调,当有热插拔事件发生时接口实现层需要回调注册的接口,通过该实例通知图形服务。
401
402**起始版本:** 3.2
403
404**参数:**
405
406| 名称 | 描述 |
407| -------- | -------- |
408| cb | 热插拔事件回调实例。 |
409
410**返回:**
411
412DISPLAY_SUCCESS 表示执行成功。
413
414其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
415
416
417### SetClientBufferCacheCount()
418
419```
420IDisplayComposer::SetClientBufferCacheCount ([in] unsigned int devId, [in] unsigned int count )
421```
422**描述**
423设置显示设备的客户端缓冲区缓存计数。
424
425**起始版本:** 3.2
426
427**参数:**
428
429| 名称 | 描述 |
430| -------- | -------- |
431| devId | 表示需要操作的设备ID。  |
432| count | 客户端缓冲区缓存计数。 |
433
434**返回:**
435
436DISPLAY_SUCCESS 表示执行成功。
437
438其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
439
440
441### SetDisplayBacklight()
442
443```
444IDisplayComposer::SetDisplayBacklight ([in] unsigned int devId, [in] unsigned int level )
445```
446**描述**
447设置显示设备当前的背光值。
448
449图形服务可以通过该接口获取设置显示设备的背光值。
450
451**起始版本:** 3.2
452
453**参数:**
454
455| 名称 | 描述 |
456| -------- | -------- |
457| devId | 表示需要操作的设备ID。  |
458| level | 表示需要设置的背光值,背光值范围0~255。 |
459
460**返回:**
461
462DISPLAY_SUCCESS 表示执行成功。
463
464其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
465
466
467### SetDisplayClientCrop()
468
469```
470IDisplayComposer::SetDisplayClientCrop ([in] unsigned int devId, [in] struct IRect rect )
471```
472**描述**
473设置显示设备的裁剪区域。
474
475图形服务可以通过该接口设置显示设备的ClientBuffer的裁剪区域,裁剪区域不能超过ClientBuffer的大小。
476
477**起始版本:** 3.2
478
479**参数:**
480
481| 名称 | 描述 |
482| -------- | -------- |
483| devId | 表示需要操作的设备ID。  |
484| rect | ClientBuffer的裁剪区域。 |
485
486**返回:**
487
488DISPLAY_SUCCESS 表示执行成功。
489
490其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
491
492
493### SetDisplayMode()
494
495```
496IDisplayComposer::SetDisplayMode ([in] unsigned int devId, [in] unsigned int modeId )
497```
498**描述**
499设置显示设备的显示模式。
500
501图形服务可以通过该接口获取设置显示设备的显示模式。
502
503**起始版本:** 3.2
504
505**参数:**
506
507| 名称 | 描述 |
508| -------- | -------- |
509| devId | 表示需要操作的设备ID。  |
510| modeId | 指明需要设置的模式ID,接口实现层将设备切换到该参数对应的显示模式。 |
511
512**返回:**
513
514DISPLAY_SUCCESS 表示执行成功。
515
516其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
517
518
519### SetDisplayPowerStatus()
520
521```
522IDisplayComposer::SetDisplayPowerStatus ([in] unsigned int devId, [in] enum DispPowerStatus status )
523```
524**描述**
525设置显示设备当前的电源状态。
526
527图形服务可以通过该接口获取设置显示设备的电源状态。
528
529**起始版本:** 3.2
530
531**参数:**
532
533| 名称 | 描述 |
534| -------- | -------- |
535| devId | 表示需要操作的设备ID。  |
536| status | 表示需要设置的电源状态,具体电源状态查看[DispPowerStatus](_display_v10.md#disppowerstatus)。 |
537
538**返回:**
539
540DISPLAY_SUCCESS 表示执行成功。
541
542其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
543
544
545### SetDisplayProperty()
546
547```
548IDisplayComposer::SetDisplayProperty ([in] unsigned int devId, [in] unsigned int id, [in] unsigned long value )
549```
550**描述**
551设置显示设备属性值。
552
553图形服务可以通过该接口设置显示设备具体的属性值。
554
555**起始版本:** 3.2
556
557**参数:**
558
559| 名称 | 描述 |
560| -------- | -------- |
561| devId | 表示需要操作的设备ID。  |
562| id | 由接口[GetDisplayCapability](#getdisplaycapability)返回属性ID。  |
563| value | 需要设置的属性值。 |
564
565**返回:**
566
567DISPLAY_SUCCESS 表示执行成功。
568
569其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
570
571
572### SetDisplayVsyncEnabled()
573
574```
575IDisplayComposer::SetDisplayVsyncEnabled ([in] unsigned int devId, [in] boolean enabled )
576```
577**描述**
578使能垂直同步信号。
579
580图形服务可以通过该接口使能或取消垂直同步信号,当有垂直同步信号产生时,接口实现层需要回调图形服务通过RegDisplayVBlankCallback注册的 VBlankCallback 回调。 图形服务在需要刷新显示时需要使能垂直同步信号,在收到**VBlankCallback**事件回调时再进行合成送显,不需要刷新显示时需要取消垂直同步信号。
581
582**起始版本:** 3.2
583
584**参数:**
585
586| 名称 | 描述 |
587| -------- | -------- |
588| devId | 表示需要操作的设备ID。  |
589| enabled | 使能状态,true表示能,false表示不能。 |
590
591**返回:**
592
593DISPLAY_SUCCESS 表示执行成功。
594
595其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
596
597
598### SetVirtualDisplayBuffer()
599
600```
601IDisplayComposer::SetVirtualDisplayBuffer ([in] unsigned int devId, [in] NativeBuffer buffer, [in] HdifdParcelable fence )
602```
603**描述**
604设置虚拟屏的输出缓存。
605
606该接口用于设置虚拟屏输出缓存,接口实现层需要将虚拟屏的输出放入到该缓存中,接口实现层需要等待同步栅栏发送信号后才能使用缓存。
607
608**起始版本:** 3.2
609
610**参数:**
611
612| 名称 | 描述 |
613| -------- | -------- |
614| devId | 表示需要操作的设备ID。  |
615| buffer | 输出缓存。  |
616| fence | 同步栅栏。 |
617
618**返回:**
619
620DISPLAY_SUCCESS 表示执行成功。
621
622其他值表示执行失败,具体错误码查看[DispErrCode](_display_v10.md#disperrcode)。
623