PFND3D11_1DDI_CLEARVIEW fonction de rappel (d3d10umddi.h)

PFND3D11_1DDI_CLEARVIEW définit tous les éléments d’une vue de ressources sur une seule valeur. Une vue de ressources est un descripteur de surface qui indique un format et éventuellement un sous-ensemble de la ressource.

Syntaxe

PFND3D11_1DDI_CLEARVIEW Pfnd3d111DdiClearview;

void Pfnd3d111DdiClearview(
  D3D10DDI_HDEVICE hDevice,
  D3D11DDI_HANDLETYPE viewType,
  VOID *hView,
  const FLOAT Color[4],
  const D3D10_DDI_RECT *pRect,
  UINT NumRects
)
{...}

Paramètres

hDevice

Handle pour le périphérique d’affichage (contexte graphique).

viewType

Valeur de type D3D11DDI_HANDLETYPE qui identifie le type de handle d’affichage qui prend en charge cette opération d’effacement. Les types possibles sont les suivants.

  • D3D10DDI_HT_RENDERTARGETVIEW
  • D3D11DDI_HT_UNORDEREDACCESSVIEW
  • N’importe quel typeD3D11_1DDI_HT_VIDEO XXX

hView

Pointeur vers l’affichage des ressources à effacer.

Color[4]

pRect

Tableau de structures RECT pour les rectangles de l’affichage des ressources à effacer. Si la valeur est NULL, ClearView efface toute la surface.

NumRects

Nombre de rectangles dans le tableau spécifié par le paramètre pRect .

Valeur de retour

None

Remarques

ClearView fonctionne uniquement sur les vues de cible de rendu (RTV), les vues à accès non ordonné (UAV) ou toute vue vidéo d’une surface Texture2D . Les rectangles vides dans le tableau pRect ne sont pas op. Un rectangle est vide si la valeur supérieure est égale à la valeur inférieure ou si la valeur de gauche est égale à la valeur de droite.

ClearView ne prend pas en charge les textures 3D.

ClearView applique la même valeur de couleur à toutes les tranches de tableau d’une vue ; tous les rectangles du tableau pRect correspondent à chaque tranche de tableau. Le tableau pRect de rectangles est un ensemble de zones à effacer sur une seule surface. Si la vue est un tableau, ClearView efface tous les rectangles de chaque tranche de tableau individuellement.

Lorsque le pilote en mode utilisateur applique des rectangles aux mémoires tampons, il doit définir la valeur supérieure sur 0 et la valeur inférieure sur 1 et définir la valeur de gauche et la valeur de droite pour décrire l’étendue dans la mémoire tampon. Lorsque la valeur supérieure est égale à la valeur inférieure ou que la valeur de gauche est égale à la valeur de droite, le rectangle est vide et une opération sans opération est obtenue.

Le pilote doit convertir et limiter les valeurs de couleur au format de destination en fonction des règles de conversion Direct3D. Par exemple, si le format de l’affichage est DXGI_FORMAT_R8G8B8A8_UNORM, limitez les entrées à 0,0f à 1,0f (+INF -> 1.0f (0XFF)/NaN -> 0.0f).

Si le format est entier, par exemple DXGI_FORMAT_R8G8B8A8_UINT, prenez les entrées en tant que floats intégraux. Par conséquent, 235.0f est mappé à 235 (arrondit à zéro, les valeurs hors plage/INF se serrent à la plage cible et NaN à zéro).

Voici les mappages de couleurs :

  • Couleur[0] : R (ou Y pour la vidéo)
  • Couleur[1] : G (ou U/Cb pour la vidéo)
  • Couleur[2] : B (ou V/Cr pour la vidéo)
  • Couleur[3] : A

Pour les vues vidéo au format YUV ou YCbBr, ClearView ne convertit pas les valeurs de couleur. Dans les situations où le nom de format n’indique pas _UNORM, _UINT, etc., ClearView suppose _UINT. Par conséquent, 235.0f est mappé à 235 (arrondit à zéro, les valeurs hors plage/INF se serrent à la plage cible et NaN à zéro).

Pour les vues Microsoft Direct3D des surfaces vidéo RTV ou UAV sous-échantillonnée, notez que les dimensions de l’affichage sont basées sur le nombre de pixels dans le format d’affichage plutôt que sur le nombre logique sous-jacent de pixels vidéo. Par exemple, supposons que la surface a le format YUY2 avec une dimension de 1920 par 1 080 pixels et qu’un RTV utilise le format DXGI_FORMAT_R8G8B8A8_UINT. L’affichage à Direct3D semble avoir 1920/2 = 960 R8G8B8A8 pixels dans la direction horizontale. Ainsi, tous les rectangles passés dans ClearView sont interprétés dans cet espace. En outre, la valeur claire est prise pour les 4 composants, R8G8B8A8, comme si elle n’était pas différente d’une véritable surface R8G8B8A8 . Dans ce cas, R, G, B et A ne signifient pas les valeurs de couleur RVBA standard ; au lieu de cela, ils identifient un emplacement en mémoire, et l’appelant est chargé de comprendre ce que signifie placer des données dans cet emplacement dans le contexte d’une surface vidéo.

Toutefois, les vues vidéo d’une surface vidéo (telles que les vues fournies à la fonction CreateVideoDecoderOutputView et à d’autres fonctions XxxInputView et XxxOutputView ) apparaissent dans les dimensions logiques complètes. Dans ce cas, la dimension horizontale étant de 1920 pixels de large, les structures RECT passées dans ClearView respectent cela. Ces RECTdoivent être alignés afin qu’ils ne chevauchent pas les blocs sous-échantillonné, sinon le runtime supprime l’appel à cette fonction. Pour les vues vidéo, les couleurs YUV doivent être correctement répliquées pour les formats sous-échantillonné. Par exemple, YUV dans l’appel ClearView a la valeur Y dupliquée pour chaque bloc dans une surface YUY2.

La structure D3D10_DDI_RECT est définie comme une structure RECT .

typedef RECT D3D10_DDI_RECT;

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8
Serveur minimal pris en charge Windows Server 2012
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3d10umddi.h (incluez D3d10umddi.h)

Voir aussi

CreateVideoDecoderOutputView

D3D11DDI_HANDLETYPE

RECT