Partager via


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

Voir aussi

ID3D10Device Interface