PFND3D11DDI_SETRENDERTARGETS funzione di callback (d3d10umddi.h)
Il SetRenderTargets(D3D11) set di funzioni esegue il rendering delle superfici di destinazione.
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 di handle possono essere NULL.
[in] NumRTVs
Numero di elementi nella matrice fornita in phRenderTargetView per le rtv da impostare.
[in] ClearSlots
Numero di oggetti RTV da scollegare; 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 flag 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 tale accodamento e utilizzare il buffer. Qualsiasi altro valore fa sì che il driver imposti il contatore nascosto per l'accodamento UAV e utilizza il buffer.
UAVStartSlot
Indice del primo UAV da associare. UAVStartSlot deve essere almeno ottimale come il parametro NumRTVs.
Nota
Esiste un solo set condiviso di punti di associazione per le unità RTV e 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 binding null).
[in] UAVRangeSize
Numero di UAV nel set di tutti gli UAV aggiornati(inclusi binding null).
Valore restituito
Nessuno
Osservazioni
I descrittori di risorse, ad esempio rtv e UAV, devono essere associati (inserire 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
NumUAV e UAVStartSlot specificare quale intervallo nella matrice UAV contiene modifiche in relazione 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 modificato dato che Direct3D DDI associa sempre tutto (incluso ciò che non è stato modificato). Il runtime D3D11 li formula per conto dell'applicazione come informazioni aggiuntive per i writer di driver come suggerimenti per l'ottimizzazione possibile. In genere, il runtime D3D11 chiamerà questa funzione con UAVRangeStart e valori UAVRangeSize per indicare l'intero intervallo. Uso dell'esempio precedente:
- Per scegliere l'intero intervallo (non si ritiene che si verifichi alcuna modifica), UAVRangeStart = 2 e UAVRangeSize = 3.
- Per indicare che è possibile modificare solo il primo UAVAVAV, UAVRangeStart = 2 e UAVRangeSize = 1.
Il driver può usare il pfnSetErrorCb funzione di callback per impostare un codice di errore.
Il driver non deve riscontrare alcun errore, ad eccezione di D3DDDIERR_DEVICEREMOVED. Pertanto, se il driver passa qualsiasi errore, ad eccezione di D3DDDIERR_DEVICEREMOVED, in una chiamata alla funzionepfnSetErrorCb, il runtime Di Microsoft Direct3D determinerà che l'errore è critico. Anche se il dispositivo è stato rimosso, il driver non è necessario per 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.
Fabbisogno
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) |