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.
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) |