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]. 如果 EnableFALSE,则忽略此参数。

[in] Upper

luma 键的上限。 有效范围为 [0...1]. 如果 EnableFALSE,则忽略此参数。

返回值

备注

若要使用此功能,驱动程序必须支持 luma 键,由 D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY 功能标志指示。 若要查询此功能,请调用 ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps。 此外,如果输入格式为 RGB,则设备必须支持 D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY 功能。

LowerUpper 的值使用标称范围 [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

另请参阅

ID3D11VideoContext