Condividi tramite


PFND3D10DDI_SETVIEWPORTS funzione di callback (d3d10umddi.h)

La funzione SetViewports imposta i viewport.

Sintassi

PFND3D10DDI_SETVIEWPORTS Pfnd3d10ddiSetviewports;

void Pfnd3d10ddiSetviewports(
       D3D10DDI_HDEVICE unnamedParam1,
  [in] UINT NumViewports,
  [in] UINT ClearViewports,
       const D3D10_DDI_VIEWPORT *unnamedParam4
)
{...}

Parametri

unnamedParam1

hDevice [in]

Handle per il dispositivo di visualizzazione (contesto grafico).

[in] NumViewports

Numero totale di viewport specificati dal parametro pViewports.

[in] ClearViewports

Numero di viewport dopo il numero di viewport NumViewports da impostare su NULL. Questo numero rappresenta la differenza tra il numero precedente di viewport (ovvero quando il runtime di Microsoft Direct3D precedentemente chiamato SetViewports) e il nuovo numero di viewport.

Si noti che il numero specificato ClearViewports è solo un aiuto di ottimizzazione perché il driver di visualizzazione in modalità utente potrebbe calcolare questo numero.

unnamedParam4

pViewports [in]

Matrice di strutture D3D10_DDI_VIEWPORT da impostare per i viewport.

Valore restituito

Nessuno

Osservazioni

Il driver può usare il pfnSetErrorCb funzione di callback per impostare un codice di errore.

I viewport specificano la clip post di trasformazione per le risorse di destinazione di rendering e depth stencil di rendering dell'output. Tutti i viewport non definiti in una chiamata a SetViewports sono impostati su NULL. Un viewport null viene definito come segue.

struct D3D10_DDI_VIEWPORT {
  FLOAT  TopLeftX = NaN;
  FLOAT  TopLeftY = NaN;
  FLOAT  Width = NaN;
  FLOAT  Height = NaN;
  FLOAT  MinDepth = NaN;
  FLOAT  MaxDepth = NaN;
} D3D10_DDI_VIEWPORT;</pre>

Questa definizione implica che il riquadro di visualizzazione è disattivato.

Il driver di visualizzazione in modalità utente deve impostare tutti i viewport in modo atomico come un'unica operazione.

Sebbene il parametro NumViewports specifichi il numero di viewport nella matrice specificata dal parametro pViewports, alcuni valori nella matrice possono essere NULL.

Intervallo di viewport tra il numero che NumViewports specifica e il numero massimo di viewport consentiti deve contenere tutti i valori NULL o non associati. Il numero specificato dal parametro ClearViewports indica al driver il numero di viewport che il driver deve cancellare per l'operazione atomica corrente.

Se la chiamata precedente a SetViewports passato un valore pari a 2 nel parametro NumViewports e la chiamata corrente a SetViewports passa un valore pari a 4 in NumViewports, la chiamata corrente a SetViewports passa anche un valore 0 nel parametro ClearViewports. Se la successiva chiamata a SetViewports passa un valore pari a 1 in NumViewports, la chiamata successiva passa anche un valore pari a 3 (4 - 1) in ClearViewports.

Quando il valore dei viewport non crittografati viene richiesto durante le operazioni di query in modalità utente, il valore è la differenza tra il numero massimo di viewport e il valore dei viewport.

setViewports assicura che i viewport siano validi. Ovvero, SetViewports assicura che le dimensioni dei viewport siano compresi nell'intervallo (D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX, D3D10_MIN_DEPTH e D3D10_MAX_DEPTH). SetViewports garantisce anche che nessuna coordinata sia NaN e scarichi valori float denormalizzati su zero.

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 funzione pfnSetErrorCb, 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 il funzionamento di SetViewports (che in genere non dovrebbe verificarsi), il driver può restituire D3DDDIERR_DEVICEREMOVED.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
piattaforma di destinazione Desktop
intestazione d3d10umddi.h (include D3d10umddi.h)

Vedere anche

D3D10DDI_DEVICEFUNCS

D3D10_DDI_VIEWPORT

pfnSetErrorCb