DD_D3DBUFCALLBACKS-Struktur (ddrawint.h)

Die DD_D3DBUFCALLBACKS-Struktur wird nur von Treibern verwendet, die die Zuordnung von Befehls- und Vertexpuffern auf Treiberebene implementieren.

Syntax

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;

Member

dwSize

Gibt die Größe dieser DD_D3DBUFCALLBACKS-Struktur in Byte an.

dwFlags

Reserviert.

CanCreateD3DBuffer

Verweist auf den CanCreateD3DBuffer-Rückruf des Treibers.

CreateD3DBuffer

Verweist auf den CreateD3DBuffer-Rückruf des Treibers.

DestroyD3DBuffer

Verweist auf den DestroyD3DBuffer-Rückruf des Treibers.

LockD3DBuffer

Verweist auf den LockD3DBuffer-Rückruf des Treibers.

UnlockD3DBuffer

Verweist auf den UnlockD3DBuffer-Rückruf des Treibers.

Hinweise

Treiber, die ihre eigenen Befehls- und Vertexpuffer verwalten, müssen eine DD_D3DBUFCALLBACKS-Struktur ausfüllen und den lpD3DBufCallbacks-Member von DD_HALINFO darauf verweisen.

Der Treiber muss auch die Rückruffunktionen unterstützen, die in der DD_D3DBUFCALLBACKS-Struktur gemeldet werden. Diese XxxD3DBuffer-Rückrufe sind jeweils analog zum DdXxxSurface-Rückruf mit ähnlichem Namen; sie verfügen über die gleichen Prototypen und werden mit den gleichen Eingabeparametern aufgerufen. Diese neuen Rückrufe werden nur aufgerufen, wenn auf der betreffenden Oberfläche das flag DDSCAPS_EXECUTEBUFFER in den Oberflächenkappen festgelegt ist. Die Puffererstellungsflags sind DDSCAPS_WRITEONLY, DDSCAPS2_VERTEXBUFFER und DDSCAPS2_COMMANDBUFFER.

Der Treiber bestimmt den Typ des angeforderten Puffers, indem er den ddsCaps-Member der DD_SURFACE_LOCAL Struktur überprüft, die an CanCreateD3DBuffer und CreateD3DBuffer übergeben wird, auf die folgenden Flags:

  • DDSCAPS_VERTEXBUFFER

    Gibt an, dass der Treiber einen expliziten Vertexpuffer zuordnen soll.

  • DDSCAPS_COMMANDBUFFER

    Gibt an, dass der Treiber einen Befehlspuffer zuordnen soll.

  • Das Fehlen dieser beiden Flags

    Gibt an, dass der Treiber einen impliziten Vertexpuffer zuordnen soll.

Implizite Vertexpuffer sollten nicht im Videospeicher platziert werden, da von ihnen Lese-/Schreibzugriff erwartet wird. Nur explizite Vertexpuffer mit dem DDSCAPS_WRITEONLY Flags können sicher im Videospeicher platziert werden.

Anforderungen

   
Kopfzeile ddrawint.h (einschließlich Winddi.h)

Weitere Informationen

CanCreateD3DBuffer

CreateD3DBuffer

DD_HALINFO

DD_SURFACE_LOCAL

DestroyD3DBuffer

LockD3DBuffer

UnlockD3DBuffer