openWF display API接口解析

1. wfdCreateDevice:

创建一个device或者获取已创建的device的操作handle
在这里插入图片描述

deviceId:
表示要创建的设备,deviceId值必须是使用wfdEnumerateDevices()或WFD_DEFAULT_DEVICE_ID检索的设备ID。如果deviceId是WFD_DEFAULT_DEVICE_ID,则返回一个默认设备。系统集成商将确定默认设备。

attribList:属性

return:成功后,将创建并返回一个有效的WFDDevice句柄。失败时,将返回WFD_INVALID_HANDLE。如果没有匹配deviceId的可用设备,或者存在内存不足的情况,则返回WFD_INVALID_HANDLE。对于任何特定的设备,只允许一个WFDDevice实例。当特定设备的实例已创建但尚未销毁,任何进一步创建相同设备的尝试都将失败,返回WFD_INVALID_HANDLE。

2. wfdEnumeratePorts

枚举端口:获取有效设备的数目和ID
在这里插入图片描述

device: 表示要从哪个显示控制设备检索id。
portIds:保存WFDPort ID的数组
portIdsCount: port的数目
filterList: 包含一个过滤属性列表,用于控制wfdEnumeratePorts函数返回的端口id。暂时没有用到

3. wfdCreatePort

创建一个端口
在这里插入图片描述

device:与portId关联的设备句柄
portID: 要创建的端口,来自于wfdEnumeratePorts()枚举的端口id
attribList: 属性,没有用到
return:成功后,将创建并返回一个有效的WFDPort句柄

4. wfdGetPortModes

获取端口模式
在这里插入图片描述

device: 设备句柄
port:端口句柄
modes:获取到的模式句柄将返回到此数组中
modesCount: 获取哪个模式

5. wfdSetPortMode

设置端口模式
在这里插入图片描述

为端口设置指定的模式,当在端口调用wfdDeviceCommit时,更改将应用于硬件

6. wfdGetPortModeAttribi

查询端口模式属性
在这里插入图片描述
模式的attribi值通过函数返回值返回:
在这里插入图片描述

7. wfdEnumeratePipelines

枚举pipelines, 可以检索指定设备的可用pipe的数量和ID(eQDILayerID)
在这里插入图片描述

8. wfdCreatePipeline

创建一个pipe
在这里插入图片描述

return:成功后返回pipeline的操作handle

9. wfdBindPipelineToPort

将管道绑定到端口
在这里插入图片描述

10. wfdCreateSourceFromImage

创建源
在这里插入图片描述

11. wfdDeviceCommit

提交修改,对设备属性、相应的端口或相应的管道的所有修改不会立即应用于相关硬件。通过wfdDeviceCommit()函数将修改的缓存应用于硬件
在这里插入图片描述

type:表示commit调用的作用域。WFDCommitType枚举列出了可能的提交类型值
在这里插入图片描述
WFD_COMMIT_ENTIRE_DEVICE用于将所有未提交的更改提交给设备以及与设备关联的所有端口和管道。
WFD_COMMIT_ENTIRE_PORT用于将所有未提交的更改提交到指定端口以及该端口的所有绑定或绑定管道
WFD_COMMIT_PIPELINE用于提交指定管道的所有未提交更改。
handle:指定端口或管道句柄。

12. wfdSetPipelineAttribiv

设置管道配置属性
在这里插入图片描述

attrib参数表示要设置为value的属性。对于基于向量的函数,count表示提供的值的数目,value必须是至少包含count个元素的数组。
成功后,管道的attrib值设置为value。

Pipeline Configuration Attributes:
在这里插入图片描述
所有管道配置属性的存储类型、默认值和读写状态:
在这里插入图片描述
1)WFD_PIPELINE_ID表示管道的ID,与从wfdEnumeratePipeline()检索到的值相同
2)WFD_PIPELINE_PORTID表示与管道绑定的端口ID,管道只能与一个端口关联,但端口可以绑定到多个管道
3)WFD_PIPELINE_LAYER 表示端口上可用或正在使用的其他管道的分层顺序。编号较大的层会在编号较小管道的上方。绑定到同一端口的管道将具有唯一的层值。
4)WFD_PIPELINE_SHAREABLE 表示管道是否可以在不同的设备的端口中使用,单个管道只能绑定一个端口,但是此标志表示管道是否可以在另一个端口中使用
5)WFD_PIPELINE_DIRECT_REFRESH 表示管道是否直接从附加的源和掩码图像缓冲区刷新硬件。如果该属性为WFD_TRUE,则附加的源和/或掩码图像将直接绑定到硬件,以便以端口刷新率输出
6)WFD_PIPELINE_MAX_SOURCE_SIZE 定义此管道的源映像支持的最大大小。此属性的形式为两个整数数组,其中第一个数组元素表示最大宽度,第二个数组元素表示最大高度。
7)WFD_PIPELINE_SOURCE_RECTANGLE 定义要用作管道源数据的输入图像的子矩形。此属性是一个四整型数组,格式为(offsetx、offsety、width、height)。这些值是基于像素的,并且相对于管道输入图像的左上角
offsetx和offsety是从输入图像左上角到源矩形左上角的像素偏移量。如果offsetx为零,则输入图像的左边缘是源矩形的左边缘。如果偏移量为零,则输入图像的上边缘是源矩形的上边缘。
如果width或height值小于或等于零,将禁用管道,并且不会对相关端口的最终输出产生任何影响。
8)WFD_PIPELINE_FLIP表示是否启用了翻转功能。翻转包括围绕图像的水平中心线从上到下翻转裁剪阶段输出图像。
9)WFD_PIPELINE_MIRROR 表示是否启用镜像功能,镜像包括围绕裁剪图像的垂直中心线左右反转裁剪阶段输出图像
10)WFD_PIPELINE_ROTATION_SUPPORT表示管道支持哪些旋转值。此属性的值为WFDRotationSupport枚举类型。如果该属性设置为“LIMITED”,则支持0、90、180和270度的顺时针旋转值。如果此属性设置为“NONE”,则唯一支持的旋转值为0度,没有旋转支持。
在这里插入图片描述
11)WFD_PIPELINE_ROTATION 用于设置所需的旋转值
12)WFD_PIPELINE_SCALE_RANGE 表示管道支持的源图像缩放的有效范围。该属性采用两个浮点值数组,第一个数组元素表示支持的最小比例因子,第二个数组元素表示支持的最大比例因子。
比例因子值定义为:Scaling Factor = OutputSize / InputSize
其中InputSize定义为源矩形的宽度或高度,OutputSize定义为目标矩形的相应宽度或高度。请注意,宽度和高度的缩放不需要成比例,但是缩放系数的限制同时适用于宽度和高度
如果不支持缩放,最小值和最大值都将为1.00。
如果支持缩放,最大缩放因子将为8.00或更大,最小缩放因子将为0.25或更小。
在某些情况下,出于实现特定的原因,当缩放源矩形以适应目标矩形时,可能需要裁剪缩放的源矩形以完全适合目标矩形。如果使用裁切,将裁切不超过源图像区域的5%。注意,这种无提示缩放裁剪独立于由源矩形定义的用户控制的裁剪
13)WFD_PIPELINE_SCALE_FILTER 缩放时用户可以通过此属性指定过滤项,过滤包括使用附近像素中心值的函数确定每个图像像素的近似值。
在这里插入图片描述
WFDScaleFilter枚举了每种类型筛选的定义值
WFD_PIPELINE_SCALE_FILTER表示禁用过滤。像素值仅使用点采样(也称为最近邻算法)确定。
WFD_SCALE_FILTER_FASTER使用不需要大量额外资源分配的低到中质量过滤
WFD_SCALE_FILTER_BETTER使用可以为预筛选分配额外内存的高质量筛选、表等
实现不需要提供三种不同的过滤算法,但必须支持点采样模式。
如果使用点采样模式,并且源-目标映射是源像素和目标像素之间的1:1映射,则每个目标像素值必须不受围绕相应源像素的任何相邻像素值的影响。
筛选必须在源中连续进行。过滤特定震源点的结果必须仅由震源图像的内容和选定的过滤模式10决定。该实现允许访问位于源矩形之外的源图像中的像素。如果需要位于源图像之外的像素,则实现必须使用一致的方案(例如边缘复制)从源图像生成这些不存在的像素。
14)WFD_PIPELINE_DESTINATION_RECTANGLE定义管道输出图像在相关端口输出图像中的位置。此属性是一个四整型数组,格式为(offsetx、offsety、width、height)。这些值是基于像素的,并且相对于相关端口输出图像的左上角。
15)WFD_PIPELINE_TRANSPARENCY_ENABLE 定义透明度
透明度在WFDTransparency枚举中定义了位掩码:
在这里插入图片描述
16)WFD_PIPELINE_GLOBAL_ALPHA 如果启用了全局透明度,此属性表示设置管道数据混合的单个不透明度值。此属性是一个范围为0到1的WFDfloat值
如果通过wfdSet/GetPipelineAttribi函数访问,则该属性的范围限制为0到255,其中0表示完全透明,255表示完全不透明。当设置时,传递的值除以255.0f,得到介于0和1之间的alpha值。当检索到alpha值时,其值[0,1]范围内,乘以255并四舍五入以获得8位整数

13. wfdBindSourceToPipeline

将源绑定到通道
在这里插入图片描述

1)device和pipeline参数分别表示与此函数调用相关联的特定设备和图形管道。
2)source参数表示要绑定到管道的图像提供程序。如果管道当前存在绑定,则在新绑定时先释放当前绑定。如果source ==
WFD_INVALID_HANDLE,则不会将新的源绑定到管道,但会释放当前绑定。 3)transition参数表示何时进行绑定
在这里插入图片描述
所有转换都将在下一个影响关联管道的wfdDeviceCommit()调用前发生。
WFD_TRANSITION_IMMEDIATE表示转换尽快发生,而不考虑垂直同步。
WFD_TRANSITION_AT_VSYNC表示在下次垂直同步时发生转换。

4)region参数是一个WFDRect类型,表示图像的一个矩形,该区域仅与EGLImage源相关,所以视频流源区域必须始终为空。如果此参数为空,则假定整个图像已更改。

14. wfdGetPipelineAttribiv

查询管道配置属性
在这里插入图片描述

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenWF Display规范是一种供嵌入式系统使用的显示接口标准。该规范由Khedron公司于2010年发布,旨在为嵌入式系统提供统一的显示功能支持。 OpenWF Display规范定义了一套API和架构,允许嵌入式系统操作和管理多个显示设备和显示资源。它提供了一种统一的方式来控制和管理图形渲染、窗口管理、硬件加速以及显示配置等操作。 OpenWF Display规范与其他显示接口标准相比具有以下优势: 1. 跨平台兼容性:OpenWF Display规范设计灵活,支持多个操作系统和图形引擎。这使得开发人员可以在不同的平台和系统上实现一致的显示功能。 2. 硬件加速支持:该规范提供硬件加速功能,可以提升图形渲染的性能和效率,使得嵌入式系统能够更好地处理复杂的图形任务。 3. 窗口管理灵活性:OpenWF Display规范允许嵌入式系统管理多个窗口,并进行灵活的窗口控制和操作。这使得用户可以实现多任务处理、快速切换和资源共享等功能。 4. 多显示设备支持:OpenWF Display规范允许嵌入式系统同时管理多个显示设备,例如LCD屏幕、投影仪、HDMI接口等。这使得用户可以在不同的显示设备上实现统一的图形输出。 总而言之,OpenWF Display规范为嵌入式系统提供了一个统一而灵活的显示接口,使得开发人员能够更好地控制和管理显示资源,提高图形渲染性能,并支持多任务处理和多显示设备输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值