Freigeben über


IDirect3DDevice9::D rawRectPatch-Methode (d3d9helper.h)

Zeichnet einen rechteckigen Patch mit den aktuell festgelegten Streams.

Syntax

HRESULT DrawRectPatch(
  [in] UINT                    Handle,
  [in] const float             *pNumSegs,
  [in] const D3DRECTPATCH_INFO *pRectPatchInfo
);

Parameter

[in] Handle

Typ: UINT

Behandeln Sie den rechteckigen Patch zum Zeichnen.

[in] pNumSegs

Typ: const float*

Zeiger auf ein Array mit vier Gleitkommawerten, die die Anzahl der Segmente an jedem Rand des Rechteckpatches angeben, in die beim Tessellieren unterteilt werden sollte. Siehe D3DRECTPATCH_INFO.

[in] pRectPatchInfo

Typ: const D3DRECTPATCH_INFO*

Zeiger auf eine D3DRECTPATCH_INFO Struktur, die den zu zeichnenden rechteckigen Patch beschreibt.

Rückgabewert

Typ: HRESULT

Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Methode fehlschlägt, kann der Rückgabewert D3DERR_INVALIDCALL werden.

Hinweise

Für statische Patches: Legen Sie den Vertex-Shader fest, legen Sie die entsprechenden Streams fest, geben Sie Patchinformationen im pRectPatchInfo-Parameter an, und geben Sie ein Handle an, damit Direct3D Informationen erfassen und zwischenspeichern kann. Rufen Sie anschließend IDirect3DDevice9::D rawRectPatchPatch auf, wobei pRectPatchInfo auf NULL festgelegt ist, um den Patch effizient zu zeichnen. Beim Zeichnen eines zwischengespeicherten Patches werden die aktuell festgelegten Streams ignoriert. Überschreiben Sie die zwischengespeicherten pNumSegs, indem Sie einen neuen Wert für pNumSegs angeben. Beim Rendern eines zwischengespeicherten Patches müssen Sie den gleichen Vertex-Shader festlegen, der bei der Erfassung festgelegt wurde.

Beim Aufrufen von IDirect3DDevice9::D rawRectPatch mit einem Handle wird dasselbe Handle ungültig, das von einem vorherigen IDirect3DDevice9::D rawTriPatch-Aufruf zwischengespeichert wurde.

Bei dynamischen Patches ändern sich die Patchdaten für jedes Rendering des Patches, sodass es nicht effizient ist, Informationen zwischenzuspeichern. Die Anwendung kann dies auf Direct3D übertragen, indem Handle auf 0 festgelegt wird. In diesem Fall zeichnet Direct3D den Patch mit den aktuell festgelegten Streams und den pNumSegs-Werten und speichert keine Informationen zwischen. Es ist nicht gültig, Handle gleichzeitig auf 0 und pRectPatchInfo auf NULL festzulegen.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d9helper.h (einschließlich D3D9.h)
Bibliothek D3D9.lib

Weitere Informationen

IDirect3DDevice9

IDirect3DDevice9::D eletePatch

Verwenden Higher-Order Grundtypen (Direct3D 9)