Funzioni driver per supportare Direct3D

Un driver che supporta Direct3D fornisce sia funzioni di callback Direct3D che funzioni DDI DirectDraw. I callback DDI Direct3D vengono prototipi come indicato di seguito:

typedef DWORD (APIENTRY *LPD3DHAL_MYFUNCTIONCB) (LPD3DHAL_MYFUNCTIONDATA);

Nella sintassi precedente:

  • LPD3DHAL_MYFUNCTIONCB punta a un callback implementato dal driver che può essere chiamato MyFunction. Tutti i nomi di callback sono pseudonome scelti dal writer del driver di visualizzazione.

  • LPD3DHAL_MYFUNCTIONDATA è un puntatore a una struttura D3DHAL_MYFUNCTIONDATA passata al callback. Le strutture dei parametri di callback sono caratterizzate come segue:

    • Il primo membro di ogni struttura, dwhContext, è l'handle di contesto che descrive il contesto 3D in cui deve funzionare il callback. L'unica eccezione a questa regola è la struttura D3DHAL_CONTEXTCREATEDATA.
    • L'ultimo membro di ogni struttura è ddrval. Questo membro viene usato per passare il valore restituito del callback a Direct3D in modo che possa essere restituito all'applicazione chiamante.

Per determinare come inizializzare le funzioni di callback Direct3D, vedere Inizializzazione del driver Direct3D.

La tabella seguente elenca le funzioni di callback Direct3D implementate in un driver Direct3D. Tutte le funzioni di callback sono necessarie, ad eccezione di D3dValidateTextureStageState, che è facoltativo a seconda delle funzionalità hardware.

Funzione Descrizione

D3dContextCreate

Crea un contesto.

D3dContextDestroy

Elimina definitivamente un contesto.

D3dCreateSurfaceEx

Crea un'associazione tra un handle di trama e una superficie.

D3dDestroyDDLocal

Elimina tutte le superfici Direct3D create in precedenza da D3dCreateSurfaceEx che appartengono allo stesso oggetto DirectDraw locale specificato.

D3dDrawPrimitives2

Esegue il rendering delle primitive e restituisce lo stato aggiornato a Direct3D.

D3dGetDriverState

Restituisce informazioni sullo stato sul driver ai runtime DirectDraw e Direct3D.

D3dValidateTextureStageState

Esegue la convalida dello stato della fase della trama, necessaria per tutti i driver che supportano la texturing.

Per supportare Direct3D, un driver deve supportare minimamente Microsoft DirectDraw e deve implementare anche determinate funzioni DDI DirectDraw. Le funzioni pertinenti al supporto Direct3D sono elencate nella tabella seguente.

Funzione Descrizione

DrvGetDirectDrawInfo

Questa funzione recupera le funzionalità dell'hardware grafico. In questa funzione di inizializzazione il driver indica che supporta Direct3D.

DdGetDriverInfo

Il runtime esegue una query su questa funzione di callback con GUID per altre informazioni sul driver. Diversi GUID riguardano in modo specifico il supporto Direct3D del driver.

I dettagli di implementazione della funzione DirectDraw e del callback sono descritti in DirectDraw.