struttura DXGI1_1_DDI_BASE_FUNCTIONS (dxgiddi.h)

La struttura DXGI1_1_DDI_BASE_FUNCTIONS contiene puntatori a funzioni che il driver di visualizzazione in modalità utente può implementare per eseguire attività di basso livello, ad esempio la presentazione di fotogrammi di cui è stato eseguito il rendering in un output, il controllo di gamma, l'invio di notifiche relative alle superfici interoperatori condivise e GDI e la gestione di una transizione a schermo intero.

Sintassi

typedef struct DXGI1_1_DDI_BASE_FUNCTIONS {
  HRESULT()(DXGI_DDI_ARG_PRESENT *) * pfnPresent;
  HRESULT()(DXGI_DDI_ARG_GET_GAMMA_CONTROL_CAPS *) * pfnGetGammaCaps;
  HRESULT()(DXGI_DDI_ARG_SETDISPLAYMODE *) * pfnSetDisplayMode;
  HRESULT()(DXGI_DDI_ARG_SETRESOURCEPRIORITY *) * pfnSetResourcePriority;
  HRESULT()(DXGI_DDI_ARG_QUERYRESOURCERESIDENCY *) * pfnQueryResourceResidency;
  HRESULT()(DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES *) * pfnRotateResourceIdentities;
  HRESULT()(DXGI_DDI_ARG_BLT *) * pfnBlt;
  HRESULT()(DXGI_DDI_ARG_RESOLVESHAREDRESOURCE *) * pfnResolveSharedResource;
} DXGI1_1_DDI_BASE_FUNCTIONS;

Members

pfnPresent

Puntatore alla funzione PresentDXGI del driver.

pfnGetGammaCaps

Puntatore alla funzione GetGammaCapsDXGI del driver.

pfnSetDisplayMode

La funzione SetDisplayModeDXGI passa a una modalità di visualizzazione o a un server primario non supportato dal desktop GDI.

Il runtime Di Microsoft Direct3D chiama SetDisplayModeDXGI per passare a una modalità di visualizzazione o a un server primario non supportato dal desktop GDI. L'elenco seguente descrive alcuni esempi di tali primari:

  • Primarie create con formati di destinazione a 10 bit per canale (10:10:10:2) e formati di destinazione di rendering (ad esempio, D3DFMT_A2R10G10B10)
  • Primarie a campionamento multiplo in cui viene eseguito il campionamento multiplo durante l'analisi
  • Primarie persistenti usate da applicazioni Microsoft DirectX versione 10 a schermo intero
Il runtime Direct3D chiama la funzione CreateResource(D3D10) del driver di visualizzazione in modalità utente per creare la replica primaria da analizzare. Tuttavia, il driver deve programmare l'hardware per eseguire l'analisi solo quando viene chiamata la funzione SetDisplayModeDXGI . Pertanto, il runtime imposta i membri hResource e SubResourceIndex della struttura DXGI_DDI_ARG_SETDISPLAYMODE a cui punta il parametro pDisplayModeData sul database primario creato tramite la chiamata alla funzione CreateResourceD3D10 del driver. Il driver deve quindi convertire il database primario rappresentato da hResource e SubResourceIndex in un handle di allocazione primario. Dopo che il driver esegue questa conversione, il driver deve passare l'handle risultante in una chiamata alla funzione pfnSetDisplayModeCb , che avvia quindi una chiamata alla funzione DxgkDdiCommitVidPn del driver miniport di visualizzazione.

Il driver di visualizzazione in modalità utente può impostare il membro hPrimaryAllocation della struttura D3DDDICB_SETDISPLAYMODE nella chiamata a pfnSetDisplayModeCb per analizzare qualsiasi allocazione. Tuttavia, l'allocazione deve essere contrassegnata come primaria, ovvero il driver di visualizzazione in modalità utente deve avere impostato il flag campo di bit primario nel membro Flags della struttura D3DDDI_ALLOCATIONINFO in una chiamata alla funzione pfnAllocateCb per creare l'allocazione.

pDisplayModeData

Puntatore a una struttura DXGI_DDI_ARG_SETDISPLAYMODE che specifica i parametri per l'impostazione della modalità di visualizzazione.

pfnSetResourcePriority

Puntatore alla funzione SetResourcePriorityDXGI del driver.

pfnQueryResourceResidency

Puntatore alla funzione QueryResourceResidencyDXGI del driver.

pfnRotateResourceIdentities

Puntatore alla funzione RotateResourceIdentitiesDXGI del driver.

pfnBlt

Puntatore alla funzione BltDXGI del driver.

pfnResolveSharedResource

La funzione ResolveSharedResourceDXGI informa un driver di visualizzazione in modalità utente che la proprietà di una superficie condivisa è cambiata o che viene usata una superficie per l'interoperabilità GDI.

Il runtime Direct3D chiama ResolveSharedResourceDXGI quando un'applicazione chiama una delle funzioni seguenti:

  • IDXGIKeyedMutex::ReleaseSynch su una superficie condivisa sincronizzata
  • IDXGISurface1::GetDC per una superficie interoperabile GDI
Il runtime chiama la funzione ResolveSharedResourceDXGI del driver ogni volta che un proprietario della superficie condivisa cambia o quando viene usata una superficie per l'interoperabilità GDI.

Il driver implementa ResolveSharedResourceDXGI per gestire in modo appropriato le risorse per più scenari GPU. Ogni risorsa può essere divisa in memoria per più GPU su cui eseguire il rendering. Il driver può implementare ResolveSharedResourceDXGI per riemergere ogni risorsa in modo che il nuovo proprietario della risorsa abbia la risorsa unita. Il driver deve scaricare tutti i buffer dei comandi parzialmente compilati che potrebbero modificare la risorsa.

Windows 7 fornisce la macro IS_DXGI1_1_BASE_FUNCTIONS (definita nel file di intestazione D3D10umddi.h) per consentire al driver di visualizzazione in modalità utente di determinare se riceve un puntatore a una struttura DXGI1_1_DDI_BASE_FUNCTIONS o DXGI_DDI_BASE_FUNCTIONS in una chiamata alla relativa funzione CreateDevice(D3D10). La struttura DXGI1_1_DDI_BASE_FUNCTIONS include il membro pfnResolveSharedResource che il driver può riempire con un puntatore alla relativa funzione ResolveSharedResourceDXGI . Se IS_DXGI1_1_BASE_FUNCTIONS restituisce TRUE, il driver prevede di ricevere un puntatore a una struttura DXGI1_1_DDI_BASE_FUNCTIONS nel membro pDXGIDDIBaseFunctions della struttura DXGI_DDI_BASE_ARGS specificata dal membro DXGIBaseDDI della struttura D3D10DDIARG_CREATEDEVICE . In caso contrario, se IS_DXGI1_1_BASE_FUNCTIONS restituisce FALSE, il driver prevede di ricevere un puntatore a una struttura DXGI_DDI_BASE_FUNCTIONS. Windows 7 fornisce la macro IS_DXGI1_1_BASE_FUNCTIONS per consentire il funzionamento dei driver di versione più recenti nei runtime di versione meno recenti. I driver possono quindi determinare se danneggiano la memoria se tentano di riempire il membro pfnResolveSharedResource di DXGI1_1_DDI_BASE_FUNCTIONS con un puntatore alla funzione ResolveSharedResourceDXGI .

pResourceData

Puntatore a una struttura DXGI_DDI_ARG_RESOLVESHAREDRESOURCE che specifica i parametri per il dispositivo di visualizzazione e la superficie associata al dispositivo di visualizzazione.

Commenti

Windows 7 fornisce la macro IS_DXGI1_1_BASE_FUNCTIONS (definita nel file di intestazione D3D10umddi.h) per consentire al driver di visualizzazione in modalità utente di determinare se riceve un puntatore a una struttura DXGI1_1_DDI_BASE_FUNCTIONS o DXGI_DDI_BASE_FUNCTIONS in una chiamata alla relativa funzione CreateDevice(D3D10). La struttura DXGI1_1_DDI_BASE_FUNCTIONS include il membro pfnResolveSharedResource che il driver può riempire con un puntatore alla relativa funzione ResolveSharedResourceDXGI . Se IS_DXGI1_1_BASE_FUNCTIONS restituisce TRUE, il driver prevede di ricevere un puntatore a una struttura DXGI1_1_DDI_BASE_FUNCTIONS nel membro pDXGIDDIBaseFunctions della struttura DXGI_DDI_BASE_ARGS specificata dal membro DXGIBaseDDI della struttura D3D10DDIARG_CREATEDEVICE . In caso contrario, se IS_DXGI1_1_BASE_FUNCTIONS restituisce FALSE, il driver prevede di ricevere un puntatore a una struttura DXGI_DDI_BASE_FUNCTIONS. Windows 7 fornisce la macro IS_DXGI1_1_BASE_FUNCTIONS per consentire il funzionamento dei driver di versione più recenti nei runtime di versione meno recenti. I driver possono quindi determinare se la memoria verrà danneggiata se tentano di riempire il membro pfnResolveSharedResource di DXGI1_1_DDI_BASE_FUNCTIONS con un puntatore a una funzione ResolveSharedResourceDXGI .

Requisiti

Requisito Valore
Client minimo supportato DXGI1_1_DDI_BASE_FUNCTIONS è supportato a partire dal sistema operativo Windows 7.
Intestazione dxgiddi.h (include D3d10umddi.h)

Vedi anche

BltDXGI

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS

GetGammaCapsDXGI

PresentDXGI

QueryResourceResidencyDXGI

ResolveSharedResource

ResolveSharedResourceDXGI

RotateResourceIdentitiesDXGI

SetDisplayModeDXGI

SetResourcePriorityDXGI