struttura DD_D3DBUFCALLBACKS (ddrawint.h)

La struttura DD_D3DBUFCALLBACKS viene usata solo dai driver che implementano l'allocazione a livello di driver dei buffer dei comandi e dei vertici.

Sintassi

typedef struct _DD_D3DBUFCALLBACKS {
  DWORD                     dwSize;
  DWORD                     dwFlags;
  PDD_CANCREATESURFACE      CanCreateD3DBuffer;
  PDD_CREATESURFACE         CreateD3DBuffer;
  PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
  PDD_SURFCB_LOCK           LockD3DBuffer;
  PDD_SURFCB_UNLOCK         UnlockD3DBuffer;
} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;

Members

dwSize

Specifica le dimensioni in byte della struttura DD_D3DBUFCALLBACKS.

dwFlags

Riservato.

CanCreateD3DBuffer

Punta al callback CanCreateD3DBuffer del driver.

CreateD3DBuffer

Punta al callback CreateD3DBuffer del driver.

DestroyD3DBuffer

Punta al callback DestroyD3DBuffer del driver.

LockD3DBuffer

Punta al callback LockD3DBuffer del driver.

UnlockD3DBuffer

Punta al callback UnlockD3DBuffer del driver.

Commenti

I driver che gestiscono i propri buffer di comandi e vertici devono compilare una struttura DD_D3DBUFCALLBACKS e puntare il membro lpD3DBufCallbacks di DD_HALINFO .

Il driver deve supportare anche le funzioni di callback segnalate nella struttura DD_D3DBUFCALLBACKS. Questi callback XxxD3DBuffer sono ognuno analogo al callback DdXxxSurface di nome simile; hanno gli stessi prototipi e vengono chiamati con gli stessi parametri di input. Questi nuovi callback vengono chiamati solo quando la superficie in questione ha il flag DDSCAPS_EXECUTEBUFFER impostato nelle estremità di superficie. I flag di creazione del buffer sono DDSCAPS_WRITEONLY, DDSCAPS2_VERTEXBUFFER e DDSCAPS2_COMMANDBUFFER.

Il driver determina il tipo di buffer richiesto controllando il membro ddsCaps della struttura DD_SURFACE_LOCAL passata a CanCreateD3DBuffer e CreateD3DBuffer per i flag seguenti:

  • DDSCAPS_VERTEXBUFFER

    Indica che il driver deve allocare un buffer dei vertici esplicito.

  • DDSCAPS_COMMANDBUFFER

    Indica che il driver deve allocare un buffer dei comandi.

  • L'assenza di entrambi questi flag

    Indica che il driver deve allocare un buffer di vertici implicito.

I vertex buffer impliciti non devono essere inseriti nella memoria video perché devono essere letti/scritti. Solo i vertex buffer espliciti con il set di flag DDSCAPS_WRITEONLY possono essere posizionati in modo sicuro nella memoria video.

Requisiti

   
Intestazione ddrawint.h (include Winddi.h)

Vedi anche

CanCreateD3DBuffer

CreateD3DBuffer

DD_HALINFO

DD_SURFACE_LOCAL

DestroyD3DBuffer

LockD3DBuffer

UnlockD3DBuffer