D3DHAL_CONTEXTCREATEDATA Struktur (d3dhal.h)

Die D3DHAL_CONTEXTCREATEDATA-Struktur enthält alle Informationen, die die D3dContextCreate-Funktion zum Erstellen eines neuen Kontexts benötigt.

Syntax

typedef struct _D3DHAL_CONTEXTCREATEDATA {
  union {
    LPDDRAWI_DIRECTDRAW_GBL lpDDGbl;
    LPDDRAWI_DIRECTDRAW_LCL lpDDLcl;
  };
  union {
    LPDIRECTDRAWSURFACE       lpDDS;
    LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
  };
  union {
    LPDIRECTDRAWSURFACE       lpDDSZ;
    LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
  };
  union {
    DWORD     dwPID;
    ULONG_PTR dwrstates;
  };
  ULONG_PTR dwhContext;
  HRESULT   ddrval;
} D3DHAL_CONTEXTCREATEDATA;

Member

lpDDGbl

Treiberstruktur (Legacy).

lpDDLcl

Verweist auf das DirectDraw-Objekt, das eine Anwendung erstellen muss, um die COM-Schnittstelle in Direct3D abzurufen. Dadurch können Kontextinformationen zwischen einer DirectDraw-Anwendung und dem Treiber gemeinsam genutzt werden. lpDDLcl ist der gemeinsame Und Bindungsfaktor zwischen dem Kontext der Anwendung und dem Treiberkontext. Sie verweist auf eine DD_DIRECTDRAW_LOCAL Struktur, die verwendet wird, um die Oberflächen zu identifizieren, die zu einem bestimmten Direct3D-Kontext gehören und nur für den aktuellen DirectDraw-Prozess relevant sind. lpDDLcl ist erforderlich, da Oberflächen (z. B. Tiefenpuffer, Renderingpuffer und Texturen) erstellt werden können, bevor ein Direct3D-Kontext im Treiber erstellt wird.

lpDDS

Surface, das als Ziel verwendet werden soll.

lpDDSLcl

Verweist auf eine DD_SURFACE_LOCAL-Struktur , die die DirectDraw-Oberfläche beschreibt, die als Renderingziel verwendet werden soll.

lpDDSZ

Surface, das als Z verwendet werden soll.

lpDDSZLcl

Verweist auf eine DD_SURFACE_LOCAL Struktur, die die DirectDraw-Oberfläche beschreibt, die als Tiefenpuffer verwendet werden soll. Wenn dieser Member NULL ist, wird keine Tiefenpufferung ausgeführt.

dwPID

Gibt die aktuelle Prozess-ID an. Dies ist die Prozess-ID der Direct3D-Anwendung, die die Erstellung des Direct3D-Geräts initiiert hat.

dwrstates

Verweist auf ein Renderzustandsarray, das der Treiber aktualisieren soll, wenn er Renderzustandsbefehle aus dem Befehlspuffer analysiert. Der Arraypuffer muss groß genug sein, um mindestens die angegebene Anzahl von ULONG-Werten zu enthalten.

dwhContext

Gibt einen Speicherort an, der bei der Eingabe die Version der Direct3D-Benutzermoduslaufzeit angibt und bei der Ausgabe, an der der Treiber nach erfolgreicher Erstellung des Kontexts das Kontexthandle zurückgibt. Weitere Informationen finden Sie unter Hinweise.

ddrval

Gibt den Speicherort an, an dem der Treiber den Rückgabecode für D3dContextCreate schreibt. Ein Rückgabecode von D3D_OK gibt den Erfolg an. Ein Rückgabecode von D3DHAL_OUTOFCONTEXTS gibt an, dass der Treiber den Kontext nicht erstellen kann. Weitere Informationen finden Sie unter Rückgabecodes für Direct3D-Treiberrückrufe.

Hinweise

Wenn die Direct3D-Runtime die D3dContextCreate-Funktion des Treibers aufruft, gibt die Runtime eine Zahl an, die die Benutzermodusversion der Laufzeit im dwhContext-Member angibt. Die folgende Tabelle zeigt eine Zuordnung von Zahlen und Benutzermodusversionen.

Number Version des DirectX-Benutzermodus
5 9.0
4 8.0
3 7.0
2 6.0
1 5.0
0 3.0

Wenn der Treiber erfolgreich einen Kontext erstellt, gibt der Treiber die Kontext-ID in dwhContext für die Direct3D-Runtime zurück, die bei der Kommunikation mit dem Treiber verwendet werden soll.

Anforderungen

Anforderung Wert
Header d3dhal.h (include D3dhal.h)

Weitere Informationen

D3dContextErstellen

DD_DIRECTDRAW_LOCAL

DD_SURFACE_LOCAL