Condividi tramite


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.

esempio rtv e UAV.

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)

Vedere anche

D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb