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
查询管道配置属性