Condividi tramite


PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB funzione di callback (d3dumddi.h)

La funzione pfnSetDisplayPrivateDriverFormatCb modifica l'attributo formato privato di un'origine video presente.

Sintassi

PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Pfnd3dddiSetdisplayprivatedriverformatcb;

HRESULT Pfnd3dddiSetdisplayprivatedriverformatcb(
  HANDLE hDevice,
  const D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT *unnamedParam2
)
{...}

Parametri

hDevice

Handle per il dispositivo di visualizzazione (contesto grafico).

unnamedParam2

pData [in]

Puntatore a una struttura D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT che descrive come formattare un'origine video presente.

Valore restituito

pfnSetDisplayPrivateDriverFormatCb restituisce uno dei valori seguenti:

Codice restituito Descrizione
S_OK L'origine del video è stata modificata correttamente.
E_INVALIDARG I parametri sono stati convalidati e sono stati determinati in modo che non siano corretti.
E_FAIL PfnSetDisplayPrivateDriverFormatCb non è riuscito a modificare l'attributo in formato privato dell'origine del video presente.

Questa funzione potrebbe restituire anche altri valori HRESULT.

Osservazioni

La modifica dell'attributo in formato privato di un'origine video presente è utile per supportare un'applicazione DirectX a schermo intero che ne crea la modifica quando la superficie primaria GDI condivisa è in un formato privato non ottimale per l'applicazione DirectX a schermo intero. Si supponga, ad esempio, che il driver del miniport di visualizzazione crei sempre la superficie primaria condivisa GDI come non swizzled. Tuttavia, per motivi di prestazioni, il driver di visualizzazione in modalità utente richiede che tutte le superfici di una catena di scorrimento a schermo intero siano swizzled. Il driver di visualizzazione in modalità utente potrebbe quindi creare i buffer nascosto come swizzled e chiamare pfnSetDisplayPrivateDriverFormatCb per modificare la superficie primaria GDI condivisa in swizzled.

Se la chiamata a pfnSetDisplayPrivateDriverFormatCb ha esito negativo, il driver di visualizzazione in modalità utente deve continuare senza modificare l'attributo in formato privato dell'origine del video presente. Nell'esempio precedente, il driver può lasciare il database primario condiviso come non swizzled e fare in modo che i buffer nascosto swizzled o il driver possa modificare i buffer indietro nel formato non swizzled.

Se il driver di visualizzazione in modalità utente riceve l'errore di D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT da una chiamata alla funzione pfnSetDisplayModeCb, il driver può eseguire una delle operazioni seguenti:

  • Modificare l'attributo in formato privato della superficie primaria e chiamare di nuovo pfnSetDisplayModeCb.
  • Chiamare pfnSetDisplayPrivateDriverFormatCb e tentare di modificare l'attributo in formato privato dell'origine video presente. Il driver può quindi chiamare nuovamente pfnSetDisplayModeCb.
Il driver di visualizzazione in modalità utente può chiamare pfnSetDisplayPrivateDriverFormatCb solo se il membro version della struttura di D3DDDIARG_CREATEDEVICE è stato impostato su sette quando il dispositivo di visualizzazione (specificato dal parametro hDevice) è stato creato in una chiamata alla funzione CreateDevice del driver.

Fabbisogno

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

Vedere anche

CreateDevice

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb