IDirect3DDevice9::D rawTriPatch 方法 (d3d9helper.h)

使用目前設定的資料流程繪製三角形修補程式。

語法

HRESULT DrawTriPatch(
  [in] UINT                   Handle,
  [in] const float            *pNumSegs,
  [in] const D3DTRIPATCH_INFO *pTriPatchInfo
);

參數

[in] Handle

類型: UINT

要繪製的三角形修補程式控制碼。

[in] pNumSegs

類型: const float*

三個浮點數值的陣列指標,可識別三角形修補程式每個邊緣的區段數目,應在鑲嵌時分割成 。 請參閱 D3DTRIPATCH_INFO

[in] pTriPatchInfo

類型:const D3DTRIPATCH_INFO*

D3DTRIPATCH_INFO結構的指標,描述要繪製的三角形高階修補程式。

傳回值

類型: HRESULT

如果方法成功,傳回值會D3D_OK。 如果方法失敗,則傳回值可以D3DERR_INVALIDCALL。

備註

針對靜態修補程式:設定頂點著色器、設定適當的資料流程、在 pTriPatchInfo 參數中提供修補程式資訊,並指定控制碼,讓 Direct3D 可以擷取和快取資訊。 若要有效率地繪製修補程式,請呼叫 IDirect3DDevice9::D rawTriPatch ,並將 pTriPatchInfo 設為 Null。 繪製快取的修補程式時,會忽略目前設定的資料流程。 指定 pNumSegs 的新值,以覆寫快取的 pNumSegs。 轉譯快取的修補程式時,您必須設定擷取時所設定的相同頂點著色器。

呼叫 IDirect3DDevice9::D rawTriPatch 時,控制碼會使先前 IDirect3DDevice9::D rawRectPatch 呼叫所快取的相同控制碼失效。

對於動態修補程式,修補程式資料會變更每個修補程式的轉譯,因此無法有效率地快取資訊。 應用程式可以將 [控制碼] 設定為 0,將此傳達給 Direct3D。 在此情況下,Direct3D 會使用目前設定的資料流程和 pNumSegs 值繪製修補程式,而且不會快取任何資訊。 同時將 Handle 設定為 0 且 pTriPatchInfo 設定為 Null無效。

需求

   
目標平台 Windows
標頭 d3d9helper.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

IDirect3DDevice9

Higher-Order Primitives (Direct3D 9)