Partager via


PFND3D11DDI_SETRENDERTARGETS fonction de rappel (d3d10umddi.h)

Les SetRenderTargets(D3D11) fonctions affichent les surfaces cibles de rendu.

Syntaxe

PFND3D11DDI_SETRENDERTARGETS Pfnd3d11ddiSetrendertargets;

void Pfnd3d11ddiSetrendertargets(
  [in] D3D10DDI_HDEVICE unnamedParam1,
  [in] const D3D10DDI_HRENDERTARGETVIEW *unnamedParam2,
  [in] UINT NumRTVs,
  [in] UINT ClearSlots,
  [in] D3D10DDI_HDEPTHSTENCILVIEW unnamedParam5,
  [in] const D3D11DDI_HUNORDEREDACCESSVIEW *unnamedParam6,
  [in] const UINT *unnamedParam7,
       UINT UAVStartSlot,
  [in] UINT NumUAVs,
  [in] UINT UAVRangeStart,
  [in] UINT UAVRangeSize
)
{...}

Paramètres

[in] unnamedParam1

hDevice: handle de l’appareil d’affichage (contexte graphique).

[in] unnamedParam2

phRenderTargetView: tableau de handles aux objets de vue cible de rendu (RTV) à définir. Notez que certaines valeurs de handle peuvent être NULL.

[in] NumRTVs

Nombre d’éléments dans le tableau fourni dans phRenderTargetView pour que les rtV soient définis.

[in] ClearSlots

Nombre d’objets RTV à dissocier ; autrement dit, ces objets de vue cible de rendu qui étaient précédemment liés, mais qui n’ont plus besoin d’être liés.

[in] unnamedParam5

hDepthStencilView: handle vers la mémoire tampon de gabarit de profondeur à définir.

[in] unnamedParam6

phUnorderedAccessView: tableau de handles aux objets de vue d’accès non ordonné (UAV) à définir.

[in] unnamedParam7

pUAVInitialCounts: tableau d’ajouts et consommation de décalages de mémoire tampon. Ce paramètre n’est pertinent que pour les UAV du tableau phUnorderedAccessView créé avec D3D11_DDI_BUFFER_UAV_FLAG_APPEND ou D3D11_DDI_BUFFER_UAV_FLAG_COUNTER défini dans le membre Flags de la structure D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW lors de la création de l’UAV ; sinon, elle est ignorée. Si un élément de ce tableau est défini sur -1, le décalage actuel de cet ajout et consommation de mémoire tampon doit être conservé. Toute autre valeur amène le pilote à définir le compteur masqué pour cet ajout UAV et à consommer la mémoire tampon.

UAVStartSlot

Index du premier UAV à lier. UAVStartSlot doit être au moins aussi grand que le paramètre NumRTVs.

Note

Un seul ensemble partagé de points de liaison existe pour les V RTV et les UAV. Les rtv sont liés en premier, suivis des UAV.

[in] NumUAVs

Nombre d’UAV à lier.

[in] UAVRangeStart

Premier UAV dans l’ensemble de toutes les UAV mises à jour (qui inclut liaisons de NULL).

[in] UAVRangeSize

Nombre d’UAV dans l’ensemble de toutes les UAV mises à jour (qui inclut liaisons de NULL).

Valeur de retour

Aucun

Remarques

Les descripteurs de ressources tels que les VDR et les UAV doivent être liés (placés dans emplacements d’entrée) avant que les nuanceurs puissent y accéder pour la lecture ou l’écriture.

L’image suivante montre un exemple avec cinq ressources.

exemple RTV et UAV.

Dans l’exemple ci-dessus :

  • numRTV = 2
  • UAVStartSlot = 2
  • NumUAVs = 3

NumUAVs et UAVStartSlot spécifier la plage dans le tableau uaVs contient des modifications par rapport à l’état précédemment lié. Notez que les points de la plage peuvent être inchangés.

Les paramètres UAVRangeStart et UAVRangeSize sont une commodité qui révèle l’étendue de ce qui réellement modifié étant donné que le DDI Direct3D lie toujours tout (y compris ce qui n’a pas changé). Le runtime D3D11 les formule au nom de l’application en tant qu’informations supplémentaires pour les enregistreurs de pilotes comme indicateurs pour l’optimisation possible. En règle générale, le runtime D3D11 appelle cette fonction avec UAVRangeStart et valeurs UAVRangeSize pour indiquer l’ensemble de la plage. À l’aide de l’exemple ci-dessus :

  • Pour choisir l’ensemble de la plage (aucune modification supposée se produire), UAVRangeStart = 2 et UAVRangeSize = 3.
  • Pour indiquer que la première UAV peut avoir changé, UAVRangeStart = 2 et UAVRangeSize = 1.

Le pilote peut utiliser la fonction de rappel pfnSetErrorCb pour définir un code d’erreur.

Le pilote ne doit pas rencontrer d’erreur, à l’exception de D3DDDIERR_DEVICEREMOVED. Par conséquent, si le pilote transmet une erreur, à l’exception de D3DDDIERR_DEVICEREMOVED, dans un appel à la fonction pfnSetErrorCb, le runtime Microsoft Direct3D détermine que l’erreur est critique. Même si l’appareil a été supprimé, le pilote n’est pas tenu de retourner D3DDDIERR_DEVICEREMOVED ; toutefois, si la suppression de l’appareil interfère avec l’opération de SetRenderTargets (ce qui ne doit généralement pas se produire), le pilote peut retourner D3DDDIERR_DEVICEREMOVED.

Exigences

Exigence Valeur
client minimum pris en charge SetRenderTargets(D3D11) est pris en charge à partir du système d’exploitation Windows 7.
plateforme cible Bureau
d’en-tête d3d10umddi.h (include D3d10umddi.h)

Voir aussi

D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb