Condividi tramite


PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB funzione di callback (d3dumddi.h)

La funzione pfnSetDisplayPrivateDriverFormatCb modifica l'attributo in 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 video presente nell'origine.

Valore restituito

pfnSetDisplayPrivateDriverFormatCb restituisce uno dei valori seguenti:

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

Questa funzione potrebbe anche restituire altri valori HRESULT.

Commenti

La modifica dell'attributo di formato privato di un'origine presente video è utile per supportare un'applicazione DirectX a schermo intero che crea la modifica del capovolgimento 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 miniport di visualizzazione crei sempre la superficie primaria condivisa GDI come non guidata. Tuttavia, per motivi di prestazioni, il driver di visualizzazione in modalità utente richiede che tutte le superfici di una catena di capovolgimento 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 di formato privato dell'origine del video presente. Nell'esempio precedente, il driver può lasciare il database primario condiviso come non swizzled e avere i buffer nascosto swizzled oppure il driver può modificare i buffer indietro nel formato non swizzled.

Se il driver di visualizzazione in modalità utente riceve l'errore 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 del video presente. Il driver può quindi chiamare di nuovo pfnSetDisplayModeCb .
Il driver di visualizzazione in modalità utente può chiamare pfnSetDisplayPrivateDriverFormatCb solo se il membro Version della struttura D3DDDIARG_CREATEDEVICE è stato impostato su maggiore di sette quando il dispositivo di visualizzazione (specificato dal parametro hDevice ) è stato creato in una chiamata alla funzione CreateDevice del driver.

Requisiti

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)

Vedi anche

CreateDevice

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb