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 specificati da NumViewports su NULL. Questo numero rappresenta la differenza tra il numero precedente di viewport (ovvero, quando il runtime di Microsoft Direct3D precedentemente denominato SetViewports) e il nuovo numero di viewport.
Si noti che il numero specificato da 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 la funzione di callback pfnSetErrorCb per impostare un codice di errore.
I viewport specificano il clip post di trasformazione per le risorse dello stencil di rendering dell'output e della profondità. Tutti i viewport non definiti in una chiamata a SetViewports sono impostati su NULL. Di seguito è definito un viewport NULL .
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.
Anche se il parametro NumViewports specifica il numero di viewport nella matrice specificata dal parametro pViewports , alcuni valori nella matrice possono essere NULL.
L'intervallo di viewport tra il numero specificato da NumViewports 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 ha 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 il 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 garantisce che i viewport siano validi. Ovvero SetViewports garantisce che le dimensioni dei viewport siano entro l'intervallo (D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX, D3D10_MIN_DEPTH e D3D10_MAX_DEPTH). SetViewports garantisce inoltre che nessuna coordinata sia NaN e scarica valori float denormalizzati su zero.
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 SetViewports (che in genere non dovrebbe verificarsi), il driver può restituire D3DDDIERR_DEVICEREMOVED.
Requisiti
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) |