Metodo ID3D11DeviceContext::OMSetRenderTargets (d3d11.h)
Associare una o più destinazioni di rendering atomicamente e il buffer di profondità-stencil alla fase di fusione di output.
Sintassi
void OMSetRenderTargets(
[in] UINT NumViews,
[in, optional] ID3D11RenderTargetView * const *ppRenderTargetViews,
[in, optional] ID3D11DepthStencilView *pDepthStencilView
);
Parametri
[in] NumViews
Tipo: UINT
Numero di destinazioni di rendering da associare (intervalli compresi tra 0 e D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT). Se questo parametro è diverso da zero, il numero di voci nella matrice a cui ppRenderTargetViews punta deve essere uguale al numero in questo parametro.
[in, optional] ppRenderTargetViews
Tipo: ID3D11RenderTargetView*
Puntatore a una matrice di ID3D11RenderTargetView che rappresentano le destinazioni di rendering da associare al dispositivo. Se questo parametro è NULL e NumViews è 0, non sono associate destinazioni di rendering.
[in, optional] pDepthStencilView
Tipo: ID3D11DepthStencilView*
Puntatore a un ID3D11DepthStencilView che rappresenta la visualizzazione profondità-stencil da associare al dispositivo. Se questo parametro è NULL, la visualizzazione profondità-stencil non è associata.
Valore restituito
nessuno
Osservazioni
Il numero massimo di destinazioni di rendering attive che un dispositivo può avere attivo in qualsiasi momento viene impostato da un #define in D3D11.h denominato D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT. Non è valido provare a impostare la stessa sottoresource su più slot di destinazione di rendering. Le destinazioni di rendering non definite da questa chiamata sono impostate su NULL.
Se le sottoresource sono attualmente associate anche per la lettura in una fase o scrittura diversa (forse in una parte diversa della pipeline), tali punti di associazione verranno impostati su NULL, in modo da impedire la lettura e la scrittura simultanea dello stesso subresource in una singola operazione di rendering.
Il metodo conterrà un riferimento alle interfacce passate. Ciò è diverso dal comportamento dello stato del dispositivo in Direct3D 10.
Se le visualizzazioni di destinazione di rendering sono state create da un tipo di risorsa matrice, tutte le visualizzazioni di destinazione di rendering devono avere le stesse dimensioni della matrice.
Questa restrizione si applica anche alla visualizzazione stencil di profondità, le dimensioni della matrice devono corrispondere a quella delle viste di destinazione di rendering associate.
Il pixel shader deve essere in grado di eseguire contemporaneamente il rendering in almeno otto destinazioni di rendering separate. Tutte queste destinazioni di rendering devono accedere allo stesso tipo di risorsa: Buffer, Texture1D, Texture1DArray, Texture2D, Texture2DArray, Texture3D o TextureCube. Tutte le destinazioni di rendering devono avere le stesse dimensioni in tutte le dimensioni (larghezza e altezza e profondità per 3D o dimensioni della matrice per i tipi di matrice). Se le destinazioni di rendering usano l'anti-aliasing multisample, tutte le destinazioni di rendering associate e il buffer di profondità devono essere la stessa forma di risorsa multisample, ovvero i conteggi di esempio devono essere uguali. Ogni destinazione di rendering può avere un formato di dati diverso. Questi formati di destinazione di rendering non sono necessari per avere conteggi di bit per elemento identici.
Qualsiasi combinazione di otto slot per le destinazioni di rendering può avere un set di destinazione di rendering o meno impostato.
La stessa visualizzazione risorsa non può essere associata a più slot di destinazione di rendering contemporaneamente. È tuttavia possibile impostare più visualizzazioni di risorse non sovrapposte di una singola risorsa come destinazioni di rendering simultanee.
Si noti che a differenza di alcuni altri metodi di risorse in Direct3D, tutte le destinazioni di rendering attualmente associate non saranno in uscita chiamando OMSetRenderTargets(0, nullptr, nullptr);
.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | d3d11.h |
Libreria | D3D11.lib |