PFND3D10DDI_SETPREDICATION funzione di callback (d3d10umddi.h)
La funzione SetPredication specifica se vengono effettivamente eseguiti i comandi di rendering e manipolazione delle risorse che seguono.
Sintassi
PFND3D10DDI_SETPREDICATION Pfnd3d10ddiSetpredication;
void Pfnd3d10ddiSetpredication(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HQUERY unnamedParam2,
BOOL unnamedParam3
)
{...}
Parametri
unnamedParam1
hDevice [in]
Handle per il dispositivo di visualizzazione (contesto grafico).
unnamedParam2
hQuery [in]
Handle per l'oggetto query da impostare come predicato. L'impostazione di hQuery su NULL indica "nessun predicato". Se hQuery è impostato su NULL, il driver ignora il valore nel parametro PredicateValue ; tuttavia, il driver deve archiviare il valore del predicato per le richieste successive per il valore.
unnamedParam3
PredicateValue [in]
Valore booleano da confrontare con i dati di query. Se i dati della query sono uguali al valore del predicato, i comandi di rendering e manipolazione delle risorse seguenti non vengono eseguiti.
Valore restituito
nessuno
Osservazioni
Il driver può usare la funzione di callback pfnSetErrorCb per impostare un codice di errore.
Alcuni predicati sono solo hint; pertanto, potrebbero non impedire l'esecuzione di operazioni. Il runtime di Microsoft Direct3D chiama principalmente SetPredication per consentire alle applicazioni di eseguire comandi grafici senza prendere il colpo delle prestazioni di rotazione e in attesa di una chiamata alla funzione QueryGetData da restituire. Pertanto, la predicazione può verificarsi anche se QueryGetData restituisce S_FALSE. In altre parole, un'applicazione può anche usare predicazione come fallback se QueryGetData restituisce eventualmente S_FALSE. Se QueryGetData restituisce S_OK, l'applicazione può ignorare la chiamata manuale dei comandi grafici con la propria logica dell'applicazione.
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 Direct3D determinerà che l'errore è critico. Anche se il dispositivo è stato rimosso, il driver non è necessario restituire D3DDDIERR_DEVICEREMOVED; tuttavia, se la rimozione del dispositivo interferisce con l'operazione di SetPredication (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) |