DXGI1_3_DDI_BASE_FUNCTIONS struttura (dxgiddi.h)
Contiene puntatori alle funzioni che un driver visualizzato windows (WDDM) 1.3 e versioni successive può implementare per eseguire attività di basso livello, ad esempio la presentazione di fotogrammi di rendering a un output, il controllo delle notifiche relative alle superfici interoperabili condivisi e Windows Graphics Device Interface (GDI) e la gestione di una transizione a schermo intero.
Sintassi
typedef struct DXGI1_3_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;
HRESULT()(DXGI_DDI_ARG_BLT1 *) * pfnBlt1;
HRESULT()(DXGI_DDI_ARG_OFFERRESOURCES *) * pfnOfferResources;
HRESULT()(DXGI_DDI_ARG_RECLAIMRESOURCES *) * pfnReclaimResources;
HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS *) * pfnGetMultiplaneOverlayCaps;
HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *) * pfnGetMultiplaneOverlayGroupCaps;
HRESULT()(void *) * pfnReserved1;
HRESULT()(DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *) * pfnPresentMultiplaneOverlay;
HRESULT()(void *) * pfnReserved2;
HRESULT()(DXGI_DDI_ARG_PRESENT1 *) * pfnPresent1;
HRESULT()(DXGI_DDI_ARG_CHECKPRESENTDURATIONSUPPORT *) * pfnCheckPresentDurationSupport;
} DXGI1_3_DDI_BASE_FUNCTIONS;
Members
pfnPresent
Puntatore alla funzione PresentDXGI del driver.
pfnGetGammaCaps
Puntatore alla funzione GetGammaCapsDXGI del driver.
pfnSetDisplayMode
Puntatore alla funzione SetDisplayModeDXGI del driver.
pfnSetResourcePriority
Puntatore alla funzione SetResourcePriorityDXGI del driver.
pfnQueryResourceResidency
Puntatore alla funzione QueryResourceResourceResidencyDXGI del driver.
pfnRotateResourceIdentities
Puntatore alla funzione RotateResourceIdentitiesDXGI del driver.
pfnBlt
Puntatore alla funzione BltDXGI del driver.
pfnResolveSharedResource
Puntatore alla funzione ResolveSharedResourceDXGI del driver.
pfnBlt1
Puntatore alla funzione Blt1DXGI del driver.
pfnOfferResources
Puntatore alla funzione pfnOfferResources del driver.
pfnReclaimResources
Puntatore alla funzione pfnReclaimResources del driver.
pfnGetMultiplaneOverlayCaps
Chiamato dal runtime DXGI per richiedere che il driver di visualizzazione in modalità utente ottenga le funzionalità di base del piano di sovrapposizione. Facoltativamente implementato da WDDM 1.3 e versioni successive dei driver di visualizzazione in modalità utente.
pfnGetMultiplaneOverlayGroupCaps
Chiamato dal runtime DXGI per richiedere che il driver di visualizzazione in modalità utente ottenga un gruppo di funzionalità del piano di sovrapposizione. Facoltativamente implementato da WDDM 1.3 e versioni successive dei driver di visualizzazione in modalità utente.
Sintassi
pfnGetMultiplaneOverlayGroupCaps GetMultiplaneOverlayGroupCaps;
HRESULT __stdcall* GetMultiplaneOverlayGroupCaps(
DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *pGroupCaps
)
{ ... }
Parametro
pGroupCaps Puntatore a una struttura DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS che specifica il gruppo di funzionalità del piano di sovrapposizione.
Valore restituito
Restituisce uno dei valori seguenti.
- S_OK Il driver ha fornito correttamente le funzionalità del piano di sovrapposizione.
- D3DDDIERR_DEVICEREMOVED Il driver ha rilevato che la scheda di visualizzazione è stata rimossa, quindi il driver non ha completato l'operazione. Se il driver non è a conoscenza della rimozione dell'adattatore, il driver non è necessario per restituire il codice di errore.
pfnReserved1
Riservato per l'utilizzo nel sistema.
pfnPresentMultiplaneOverlay
Chiamato dal runtime di Microsoft DirectX Graphics Infrastructure (DXGI) per notificare al driver di visualizzazione in modalità utente che un'applicazione ha completato il rendering e richiede che il driver visualizzi la superficie di origine copiando o capovolgendo o eseguendo un'operazione di riempimento del colore. Deve essere implementato da Windows Display Driver Model (WDDM) 1.3 o versioni successive che supportano sovrimpressione multipla.
Quando il driver di visualizzazione in modalità utente completa correttamente l'elaborazione di una chiamata a questa funzione, presenta la superficie di origine alla visualizzazione chiamando la funzione pfnPresentMultiPlaneOverlayCb (DXGI).
PFND3DDDI_PRESENTMULTIPLANEOVERLAY pfnPresentMultiPlaneOverlay;
HRESULT __stdcall* pfnPresentMultiPlaneOverlay(
DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *pPresentDXGI
)
{ ... }
Parametro
pPresentDXGI Puntatore a una struttura DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY che descrive come visualizzare l'area di destinazione.
Valore restituito
Se questa funzione di callback ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT.
pfnReserved2
Riservato per l'utilizzo nel sistema.
pfnPresent1
Notifica al driver di visualizzazione in modalità utente che un'applicazione ha completato il rendering e che tutte le proprietà della risorsa condivisa vengono rilasciate e richiede che il driver venga visualizzato nell'area di destinazione.
Sintassi
pfnPresent1 Present1DXGI;
HRESULT __stdcall* Present1DXGI(
DXGI_DDI_ARG_PRESENT1 *pPresentData
)
{ ... }
Parametro
pPresentData [in] Puntatore a una struttura DXGI_DDI_ARG_PRESENT1 che descrive come visualizzare l'area di destinazione.
Commenti
Il membro hDevice della struttura DXGI_DDI_ARG_PRESENT1 a cui punta il parametro pPresentData è lo stesso handle che la funzione CreateDevice(D3D10) del driver passa al runtime nel membro hDrvDevice della struttura D3D10DDIARG_CREATEDEVICE . Pertanto, i writer di driver devono definire attentamente il tipo di questa handle. Inoltre, i driver possono fornire implementazioni diverse della funzione pfnPresent1(DXGI) in base alla quale l'implementazione DDI ha gestito la chiamata a CreateDevice(D3D10). Il runtime non combina mai i handle del driver tra implementazioni DDI.
Il membro pDXGIContext di DXGI_DDI_ARG_PRESENT1 è un meccanismo di comunicazione opaco. Il runtime passa questo contesto DXGI al driver. Il driver deve copiare il contesto DXGI invariato nel membro pDXGIContext della struttura DXGIDDICB_PRESENT quando il driver chiama la funzione pfnPresentCbDXGI .
Il driver deve inviare tutti i dati di rendering parzialmente compilati (buffer dei comandi) usando la funzione pfnRenderCb e il driver deve eseguire una singola chiamata a pfnPresentCbDXGI. Quando si chiama uno di questi callback, il driver deve seguire le regole di threading della funzione PresentDXGI .
Regole di threading
Queste regole si applicano se il driver supporta il threading gratuito o meno:
- Il driver indica il supporto per il threading gratuito impostando il membro Caps della struttura D3D11DDI_THREADING_CAPS su D3D11DDICAPS_FREETHREADED. In questo caso:
- Solo un singolo thread può essere usato su un handle di contesto HCONTEXT alla volta.
- Il driver deve chiamare pfnPresentCbDXGI solo quando viene chiamata la funzione pfnPresent1(DXGI) del driver e dallo stesso thread che ha chiamato pfnPresent1(DXGI).
- Quando il driver non indica il supporto per il threading gratuito, può chiamare solo le funzioni di callback quando un thread ha chiamato nel driver. Il driver deve comunque chiamare il callback pfnPresentCbDXGI nel contesto di pfnPresent1(DXGI).
pfnCheckPresentDurationSupport
Puntatore alla funzione pfnCheckPresentDurationSupport(DXGI) del driver.
Commenti
Per altre informazioni su come usare questa struttura, vedere Supporto di DXGI DDI.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8.1,WDDM 1.3 e versioni successive |
Server minimo supportato | Windows Server 2012 R2 |
Intestazione | dxgiddi.h (include D3d10umddi.h) |