Condividi tramite


struttura DXGI1_1_DDI_BASE_FUNCTIONS (dxgiddi.h)

La struttura DXGI1_1_DDI_BASE_FUNCTIONS contiene puntatori alle funzioni che il driver di visualizzazione in modalità utente può implementare per eseguire attività di basso livello, ad esempio la presentazione di fotogrammi sottoposti a rendering in un output, il controllo di gamma, la visualizzazione di notifiche relative alle superfici interoperabili 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;

Membri

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 primaria non supportata dal desktop GDI.

Il runtime Di Microsoft Direct3D chiama SetDisplayModeDXGI per passare a una modalità di visualizzazione o primaria non supportata dal desktop GDI. L'elenco seguente descrive esempi di tali primarie:

  • Primarie create con formati di destinazione di rendering 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
  • Primari persistenti usati da applicazioni Microsoft DirectX versione 10 a schermo intero
Il runtime Direct3D chiama il driver di visualizzazione in modalità utente CreateResource(D3D10) funzione 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. Di conseguenza, il runtime imposta i membri hResource e SubResourceIndex della struttura DXGI_DDI_ARG_SETDISPLAYMODE a cui fa riferimento il parametro pDisplayModeData al database primario creato tramite la chiamata alla funzione CreateResourceD3D10 del driver. Il driver deve quindi convertire il database primario che hResource e SubResourceIndex rappresentare 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 al driver miniport visualizzato funzione dxgkDdiCommitVidPn.

Il driver di visualizzazione in modalità utente può impostare il membro hPrimaryAllocation della struttura di 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 Flag membro 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 del driver.

pfnQueryResourceResidency

Puntatore alla funzione queryResourceResourceResidencyDXGI 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 in 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 remerge ogni risorsa in modo che il nuovo proprietario della risorsa abbia la risorsa unita. Il driver deve scaricare eventuali buffer di 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 al relativo 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 nella pDXGIDDIBaseFunctions membro della struttura DXGI_DDI_BASE_ARGS specificata dal membro DXGIBaseDDI della struttura D3D10DDIARG_CREATEDEVICEDXGI_DDI_BASE_ARGS. 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 delle versioni precedenti. I driver possono quindi determinare se danneggiano la memoria se tentano di riempire il pfnResolveSharedResource membro 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.

Osservazioni

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 funzione CreateDevice(D3D10). La struttura DXGI1_1_DDI_BASE_FUNCTIONS include il membro pfnResolveSharedResource che il driver può riempire con un puntatore al relativo 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 nella pDXGIDDIBaseFunctions membro della struttura DXGI_DDI_BASE_ARGS specificata dal membro DXGIBaseDDI della struttura D3D10DDIARG_CREATEDEVICEDXGI_DDI_BASE_ARGS. 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 delle versioni precedenti. I driver possono quindi determinare se la memoria verrà danneggiata se tentano di riempire il pfnResolveSharedResource membro di DXGI1_1_DDI_BASE_FUNCTIONS con un puntatore a una funzione ResolveSharedResourceDXGI.

Fabbisogno

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

Vedere anche

BltDXGI

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS

GetGammaCapsDXGI

PresentDXGI

queryResourceResidencyDXGI

ResolveSharedResource

ResolveSharedResourceDXGI

RotateResourceIdentitiesDXGI

SetDisplayModeDXGI

SetResourcePriorityDXGI