PFND3D11DDI_SETRENDERTARGETS funzione di callback (d3d10umddi.h)
La funzione SetRenderTargets(D3D11) imposta le superfici di destinazione di rendering.
Sintassi
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
)
{...}
Parametri
[in] unnamedParam1
hDevice: handle per il dispositivo di visualizzazione (contesto grafico).
[in] unnamedParam2
phRenderTargetView: matrice di handle per gli oggetti della visualizzazione di destinazione di rendering (RTV) da impostare. Si noti che alcuni valori handle possono essere NULL.
[in] NumRTVs
Numero di elementi nella matrice fornita in phRenderTargetView per gli RTV da impostare.
[in] ClearSlots
Numero di oggetti RTV da annullare; ovvero gli oggetti di visualizzazione di destinazione di rendering associati in precedenza ma non devono più essere associati.
[in] unnamedParam5
hDepthStencilView: handle per il buffer depth-stencil da impostare.
[in] unnamedParam6
phUnorderedAccessView: matrice di handle per gli oggetti UAV (Unordered Access View) da impostare.
[in] unnamedParam7
pUAVInitialCounts: matrice di offset di accodamento e utilizzo del buffer. Questo parametro è rilevante solo per gli UAV della matrice phUnorderedAccessView creata con D3D11_DDI_BUFFER_UAV_FLAG_APPEND o D3D11_DDI_BUFFER_UAV_FLAG_COUNTER impostata nel membro Flags della struttura D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW al momento della creazione dell'UAV; in caso contrario, viene ignorato. Se un elemento in questa matrice è impostato su -1, deve essere mantenuto l'offset corrente per l'accodamento e l'utilizzo del buffer. Qualsiasi altro valore fa sì che il driver imposti il contatore nascosto per l'aggiunta e l'utilizzo del buffer UAV.
UAVStartSlot
Indice del primo UAV da associare. UAVStartSlot deve essere altrettanto grande del parametro NumRTVs .
Nota
Esiste un solo set condiviso di punti di associazione per gli UVS e gli UAV. Le rtv sono associate per prime, seguite da UAV.
[in] NumUAVs
Numero di UAV da associare.
[in] UAVRangeStart
Primo UAV nel set di tutti gli UAV aggiornati (che include associazioni NULL ).
[in] UAVRangeSize
Numero di UAV nel set di tutti gli UAV aggiornati (che include associazioni NULL ).
Valore restituito
nessuno
Osservazioni
I descrittori di risorse, ad esempio gli UVS e gli UAV, devono essere associati (inseriti negli slot di input) prima che gli shader possano accedervi per la lettura o la scrittura.
L'immagine seguente mostra un esempio con cinque risorse.
Nell'esempio precedente:
- NumRTVs = 2
- UAVStartSlot = 2
- NumUAVs = 3
NumUAVs e UAVStartSlot specificano l'intervallo nella matrice UAV contenente modifiche rispetto allo stato associato in precedenza. Si noti che i punti nell'intervallo potrebbero essere invariati.
I parametri UAVRangeStart e UAVRangeSize sono una comodità che rivela l'intervallo di ciò che è effettivamente cambiato , dato che Direct3D DDI associa sempre tutto (inclusi gli elementi non modificati). Il runtime D3D11 li formula per conto dell'applicazione come informazioni aggiuntive per i writer di driver come suggerimenti per la possibile ottimizzazione. In genere, il runtime D3D11 chiamerà questa funzione con valori UAVRangeStart e UAVRangeSize per indicare l'intero intervallo. Uso dell'esempio precedente:
- Per scegliere l'intero intervallo (nessuna modifica ritenuta possibile), UAVRangeStart = 2 e UAVRangeSize = 3.
- Per indicare che solo il primo UAV potrebbe essere stato modificato, UAVRangeStart = 2 e UAVRangeSize = 1.
Il driver può usare la funzione di callback pfnSetErrorCb per impostare un codice di errore.
Il driver non deve riscontrare errori, ad eccezione di D3DDDIERR_DEVICEREMOVED. Pertanto, se il driver passa qualsiasi errore, ad eccezione di D3DDDIERR_DEVICEREMOVED, in una chiamata alla funzione pfnSetErrorCb , il runtime di Microsoft Direct3D determinerà che l'errore è critico. Anche se il dispositivo è stato rimosso, il driver non deve restituire D3DDDIERR_DEVICEREMOVED; Tuttavia, se la rimozione del dispositivo interferisce con l'operazione di SetRenderTargets (che in genere non dovrebbe verificarsi), il driver può restituire D3DDDIERR_DEVICEREMOVED.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | SetRenderTargets(D3D11) è supportato a partire dal sistema operativo Windows 7. |
Piattaforma di destinazione | Desktop |
Intestazione | d3d10umddi.h (include D3d10umddi.h) |