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.

Esempio di RTV e UAV.

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)

Vedi anche

D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb