ID3D10Device ::OMSetRenderTargets, méthode (d3d10.h)
Liez une ou plusieurs cibles de rendu et la mémoire tampon de profondeur-gabarit à l’étape de fusion de sortie.
Syntaxe
void OMSetRenderTargets(
[in] UINT NumViews,
[in] ID3D10RenderTargetView * const *ppRenderTargetViews,
[in] ID3D10DepthStencilView *pDepthStencilView
);
Paramètres
[in] NumViews
Type : UINT
Nombre de cibles de rendu à lier.
[in] ppRenderTargetViews
Type : ID3D10RenderTargetView*
Pointeur vers un tableau de cibles de rendu (voir ID3D10RenderTargetView) à lier à l’appareil. Si ce paramètre a la valeur NULL, aucune cible de rendu n’est liée. Consultez la section Notes.
[in] pDepthStencilView
Type : ID3D10DepthStencilView*
Pointeur vers une vue de profondeur de gabarit (voir ID3D10DepthStencilView) pour la liaison à l’appareil. Si ce paramètre a la valeur NULL, l’état du gabarit de profondeur n’est pas lié.
Valeur de retour
None
Remarques
Un appel à OMSetRenderTargets remplace toutes les cibles de rendu limitées et la cible de gabarit de profondeur, quel que soit le nombre de cibles de rendu dans ppRenderTargetViews.
Le nombre maximal de cibles de rendu qu’un appareil peut avoir actives à un moment donné est défini par un #define dans D3D10.h appelé D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT. Il n’est pas valide d’essayer de définir la même sous-ressource sur plusieurs emplacements cibles de rendu.
Si des sous-ressources sont également actuellement liées à la lecture ou à l’écriture (peut-être dans une autre partie du pipeline), ces points de liaison sont null’ed out pour empêcher la même sous-ressource d’être lue et écrite simultanément dans une seule opération de rendu.
La méthode ne contiendra pas de références aux interfaces passées. Pour cette raison, les applications doivent veiller à ne pas libérer les interfaces actuellement utilisées par l’appareil.
Pour plus d’informations sur les ressources de liaison, consultez Phases de liaison de ressources et de pipeline .
Le nuanceur de pixels doit être en mesure de rendre simultanément au moins huit cibles de rendu distinctes. Toutes ces cibles de rendu doivent accéder au même type de ressource : Buffer, Texture1D, Texture1DArray, Texture2D, Texture2DArray, Texture3D ou TextureCube. Toutes les cibles de rendu doivent avoir la même taille dans toutes les dimensions (largeur et hauteur, et profondeur pour la taille 3D ou de tableau pour les *types de tableau). Si les cibles de rendu utilisent l’anticrénelage à échantillonnage multiple, toutes les cibles de rendu liées et la mémoire tampon de profondeur doivent être la même forme de ressource à échantillonnage multiple (autrement dit, le nombre d’échantillons doit être le même). Chaque cible de rendu peut avoir un format de données différent. Ces formats cibles de rendu ne sont pas obligatoires pour avoir des nombres de bits par élément identiques.
Toute combinaison des huit emplacements pour les cibles de rendu peut avoir une cible de rendu définie ou non.
La même vue de ressources ne peut pas être liée à plusieurs emplacements cibles de rendu simultanément. Toutefois, vous pouvez définir plusieurs vues de ressources qui ne se chevauchent pas d’une même ressource en tant que cibles de rendu multiples simultanées.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | d3d10.h |
Bibliothèque | D3D10.lib |