IDirect3DDevice9::D rawTriPatch-Methode (d3d9.h)
Zeichnet einen dreieckigen Patch mit den aktuell festgelegten Streams.
Syntax
HRESULT DrawTriPatch(
[in] UINT Handle,
[in] const float *pNumSegs,
[in] const D3DTRIPATCH_INFO *pTriPatchInfo
);
Parameter
[in] Handle
Typ: UINT
Handle zum dreieckigen Patch zum Zeichnen.
[in] pNumSegs
Typ: const float*
Zeiger auf ein Array von drei Gleitkommawerten, die die Anzahl der Segmente angeben, die jeder Rand des Dreieckspatches bei der Tessellierung unterteilt werden sollte. Weitere Informationen finden Sie unter D3DTRIPATCH_INFO.
[in] pTriPatchInfo
Typ: const D3DTRIPATCH_INFO*
Zeiger auf eine D3DTRIPATCH_INFO-Struktur , die den zu zeichnenden dreieckigen Patch mit hoher Ordnung 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 Vertexshader fest, legen Sie die entsprechenden Streams fest, geben Sie Patchinformationen im pTriPatchInfo-Parameter an, und geben Sie ein Handle an, damit Direct3D Informationen erfassen und zwischenspeichern kann. Um den Patch effizient zu zeichnen, rufen Sie IDirect3DDevice9::D rawTriPatch Auf, wobei pTriPatchInfo auf NULL festgelegt ist. 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.
Wenn Sie IDirect3DDevice9::D rawTriPatch mit einem Handle aufrufen, wird dasselbe Handle ungültig, das von einem vorherigen IDirect3DDevice9::D rawRectPatch-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 auf 0 und pTriPatchInfo auf NULL festzulegen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | d3d9.h (einschließlich D3D9.h) |
Bibliothek | D3D9.lib |