ID3D11VideoContext::VideoProcessorSetStreamLumaKey 方法 (d3d11.h)
设置视频处理器上输入流的 luma 键。
语法
void VideoProcessorSetStreamLumaKey(
[in] ID3D11VideoProcessor *pVideoProcessor,
[in] UINT StreamIndex,
[in] BOOL Enable,
[in] FLOAT Lower,
[in] FLOAT Upper
);
参数
[in] pVideoProcessor
指向 ID3D11VideoProcessor 接口的 指针。 若要获取此指针,请调用 ID3D11VideoDevice::CreateVideoProcessor。
[in] StreamIndex
输入流的从零开始的索引。 若要获取最大流数,请调用 ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps 并检查 MaxStreamStates 结构成员。
[in] Enable
指定是否启用 luma 键。
[in] Lower
luma 键的下限。 有效范围为 [0...1]. 如果 Enable 为 FALSE,则忽略此参数。
[in] Upper
luma 键的上限。 有效范围为 [0...1]. 如果 Enable 为 FALSE,则忽略此参数。
返回值
无
备注
若要使用此功能,驱动程序必须支持 luma 键,由 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY 功能标志指示。 若要查询此功能,请调用 ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps。 此外,如果输入格式为 RGB,则设备必须支持 D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY 功能。
Lower 和 Upper 的值使用标称范围 [0...1] 提供 luma 键的下限和上限。 给定每个通道 n 位的格式时,这些值将转换为 luma 值,如下所示:
val = f * ((1 << n)-1)
其亮度值在上限和下限内的任何像素 (非独占) 被视为透明。
例如,如果像素格式使用 8 位 luma,则上限的计算方式如下:
BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)
请注意,该值在乘以 255 之前固定到范围 [0...1]。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d3d11.h |