Partager via


ID3D11VideoContext ::VideoProcessorSetStreamLumaKey, méthode (d3d11.h)

Définit la touche luma pour un flux d’entrée sur le processeur vidéo.

Syntaxe

void VideoProcessorSetStreamLumaKey(
  [in] ID3D11VideoProcessor *pVideoProcessor,
  [in] UINT                 StreamIndex,
  [in] BOOL                 Enable,
  [in] FLOAT                Lower,
  [in] FLOAT                Upper
);

Paramètres

[in] pVideoProcessor

Pointeur vers l’interface ID3D11VideoProcessor . Pour obtenir ce pointeur, appelez ID3D11VideoDevice ::CreateVideoProcessor.

[in] StreamIndex

Index de base zéro du flux d’entrée. Pour obtenir le nombre maximal de flux, appelez ID3D11VideoProcessorEnumerator ::GetVideoProcessorCaps et case activée le membre de structure MaxStreamStates.

[in] Enable

Spécifie si la touche luma est activée.

[in] Lower

Limite inférieure de la touche luma. La plage valide est [0... 1]. Si Enable a la valeur FALSE, ce paramètre est ignoré.

[in] Upper

Limite supérieure pour la touche luma. La plage valide est [0... 1]. Si Enable a la valeur FALSE, ce paramètre est ignoré.

Valeur de retour

None

Remarques

Pour utiliser cette fonctionnalité, le pilote doit prendre en charge la touche luma, indiquée par l’indicateur de fonctionnalité D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY . Pour rechercher cette fonctionnalité, appelez ID3D11VideoProcessorEnumerator ::GetVideoProcessorCaps. En outre, si le format d’entrée est RVB, l’appareil doit prendre en charge la fonctionnalité D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY .

Les valeurs de Lower et Upper donnent les limites inférieure et supérieure de la clé luma, en utilisant une plage nominale de [0...1]. Étant donné un format avec n bits par canal, ces valeurs sont converties en valeurs luma comme suit :

val = f * ((1 << n)-1)

Tout pixel dont la valeur luma se situe dans les limites supérieure et inférieure (inclusive) est traité comme transparent.

Par exemple, si le format de pixel utilise luma 8 bits, la limite supérieure est calculée comme suit :

BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)

Notez que la valeur est limitée à la plage [0...1] avant de multiplier par 255.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d3d11.h

Voir aussi

ID3D11VideoContext